PHP für Anfänger: Array Funktionen Teil 2
Hallo LimeSpace(r),
im ersten Teil unserer kleinen Expedition in die Welt des Arrays haben wir ja bereits unsere Schafherde zum maeehn gebracht.
Als erstes möchten wir Heute alle Namen unserer Schafe in Großbuchstaben umwandeln, sicher wir könnten einfach durch das Array mit foreach gehen und für jedes Value“ strtoupper()“ aufrufen, aber das wäre doch viel zu einfach oder?
Bisher sieht unser komischer Source code übrigens so aus:
/** * Die Schafherde, wir wollen geschoren werden. */ $schafherde = array(); // füge Schade der Herde zu array_push($schafherde, 'Sarah', 'Sven', 'Das Ruby Schaf', 'Das Net Schaf', 'Das schwarze Schaf'); // Für jedes Schaf die Funktion maeh aufrufen. array_walk($schafherde, 'maeh'); function maeh($val, $key) { echo 'Schaf mit der Nummer ' . $key . ' macht maehhh und schimpft sich ' . $val; }
Wir wandeln als erstes die Values in Keys um, und im Anschluss lassen wir uns die Keys in Großbuchstaben umwandeln.
Wie geht das ?
Als erstes vertauschen wir Keys und Values unseres Arrays:
// Die Schafe möchten gerne sehen, wie ihre Namen in Großbuchstaben aussehen. $herdeGerdreht = array_flip($schafherde); print_r($herdeGerdreht);
Ergibt:
Array ( [Sarah] => 0 [Sven] => 1 [Das Ruby Schaf] => 2 [Das Net Schaf] => 3 [Das schwarze Schaf] => 4 )
Also genau das was wir erwartet haben, um nun die Namen in Großbuchstaben zu ändern nutzen wir die Funktion „array_change_key_case()„, diese Funktion erwartet ein Array und optional eine Angabe ob man nun alles in Großbuchstaben (CASE_UPPER) oder Kleinbuchstaben haben möchte (CASE_LOWER).
Wobei CASE_LOWER der Default ist.
So ergibt:
// Anzeigen der Namen unserer Schafe in Großbuchstaben print_r(array_change_key_case($herdeGerdreht, CASE_UPPER));
Array ( [SARAH] => 0 [SVEN] => 1 [DAS RUBY SCHAF] => 2 [DAS NET SCHAF] => 3 [DAS SCHWARZE SCHAF] => 4 )
Es ist schon erstaunlich auf wie viele Wege man etwas erledigen kann. Wer noch Lust hat, im Laufe der Woche spielen wir sicherlich weiter Schäfer!
Hi,
ich werfe noch ein
print_r(array_map(’strtoupper‘, $schafherde));
in die Runde.