-
PHP5 Snippet: Mehrdimensionale Arrays zu eindimensionalen Arrays
Stefan · 15.10.08, 18:30 Uhr · PHP · Tags: Array, PHP
Man braucht immer mal wieder so kleine Helfer in Projekten, da diese eigentlich nützlichen Funktionen in PHP nicht integriert sind. Heute: Wie erzeuge ich aus einem mehrdimensionalen Array einen einfachen eindimensionalen Array der die Inhalte eines bestimmten Array Keys enthält:
Die Funktion ist folgende (nur PHP5+):/** * get an array of found items by a given keyname * * method flats a given multi dimensional array into * a one dimensional array * * @param mixed $needle string/integer keyname for search, null for complete flatt * @param array $haystack array for search * @return array found items */ function flatArray($needle = null, $haystack = array()) { $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($haystack)); $elements = array(); foreach($iterator as $element) { if(is_null($needle) || $iterator->key() == $needle) { $elements[] = $element; } } return $elements; }Die funktion erzeugt aus folgendem Array:
Array ( [0] => Array ( [id] => 12 [name] => element 1 ) [1] => Array ( [id] => 13 [name] => element 2 ) [2] => Array ( [id] => 14 [name] => element 3 ) )unter verwendung dieses Befehlsraufrufs:
$neuerArray = flatArray('name', $array);einen neuen Array nur mit den Werten des Keys
name:Array ( [0] => element 1 [1] => element 2 [2] => element 3 )Ein netter Zusatz: Übergibt man als
$needledas reservierte Wortnullerhält man einen eindimensionalen Array mit allen Werten des mehrdimensionalen Arrays als Inhalt. -
Kommentare
-
Anonymous · 28.11.08, 15:31 Uhr
PERFEKT! Danke, diese Funktion rettet mir das Leben
-
array unique - Seite 2 - php.de · 17.02.09, 11:23 Uhr
[...] denn keiner ne idee wie ich das lösen könnte? was ich suche ist genau das hier nur eben für php4. php5 kommt für mich nicht in frage da ich sonst das komplette script [...]
-
-
Kommentar schreiben
