Hallo,
wenn die Funktion nicht für assoziative Arrays gedacht ist, warum nimmst Du sie dafür. Mit alternativer Syntax bist Du doch gut und übersichtlich bedient.
Ich hatte ja die Hoffnung, dass sich das Array mit 2 Zeilen Code in die benötigte Form bringen ließe ;) ... Außerdem hatte ich gehofft, auf diesem Wege PEAR etwas besser verstehen zu lernen. Aber naja.
foreach $myArrayOfAssocArrays as $Hash
foreach $toBeDeleted as $fieldName
unset($Hash[$fieldName]);
Das hat irgendwie nicht so recht funktioniert. Ich habe daher wieder eine kleine Funktion selber geschrieben (s.u.) ...
Dank & Gruß,
luti
Hier der Code:
# Funktion, die die angegebenen Felder aus einem assoziativen Array löscht
# @input: assoziatives Array, Array mit zu löschenden Feldern
# @return: assoziatives Array, bei Fehler: false
function deleteFieldsFromArray($array, $fieldList)
{
$newArray = array();
$i = 0;
if ( is_array($array) && is_array($fieldList) )
{
foreach ( $array as $key => $wert )
{
foreach ( $wert as $key2 => $wert2 )
{
if ( ! in_array($key2, $fieldList) )
{
$newArray[$key][$key2] = $wert2;
}
}
$i++;
}
return $newArray;
}
else
{
return false;
}
}