User Tools

Site Tools


php:functions:array:arrayextractsubitem

[PHP] array_extract_sub_item()

Aus einem mehrdimensionalen Array einen Subitem extrahieren

Ab PHP 5.5 ist meine Funktion veraltet, da PHP diese nun selber anbietet array_column()

Code

array_extract_sub_item.php
/**
 * 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

array_extract_sub_item.php
/**
 * 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;
}
php/functions/array/arrayextractsubitem.txt · Last modified: 29.04.2015 09:56:57 by yaslaw