Aus einem mehrdimensionalen Array einen Subitem extrahieren
Ab PHP 5.5 ist meine Funktion veraltet, da PHP diese nun selber anbietet array_column()
/** * Extrahieren ein Subitem aus einem mehrstufigen Array. Der Schlüssel wird beibehalten * bis PHP 5.5 * @author stefan.erb(at)erb-software.com * @deprecated * @param Array<Key => Array<Node>> Ein mehrstufiger Array * @param String Schlüssel des zu extrahierenden Item * @return Array<Key => Node> */ function array_extract_sub_item($array, $key){ foreach($array as $index => $item) $retArray[$index] = $item[$key]; return $retArray; }
Und noch eine erweiterte Methode. a) Es wird auch ein Array von Objekten akzeptiert b) Als neuer Schlüssel kann ein Feld des Subarrays angegeben werden
/** * Extrahieren ein Subitem aus einem mehrstufigen Array. Der Schlüssel wird beibehalten * @param Array<Key => Array<Node>> Ein mehrstufiger Array * @param String Schlüssel des zu extrahierenden Item * @param Optional String Name des Indexfeldes * @return Array<Key => Node> */ function array_extract_sub_item($array, $itemKey, $keyKey = false){ $retArray = array(); foreach($array as $index => $item){ // ggf Objekte in Array konvertieren $item = (array) $item; // Bestimmen was der neue Index ist if($keyKey !== false) $index = $item[$keyKey]; // Wert mit entsprechendem abfüllen $retArray[$index] = $item[$itemKey]; } return $retArray; }