Ich habe eine Ergebnismenge als ein Array aus einer Datenbank, die wie folgt aussieht:PHP mehrdimensionales Array Manipulation Werte
array (
0 => array (
"a" => "something"
"b" => "something"
"c" => "something"
)
1 => array (
"a" => "something"
"b" => "something"
"c" => "something"
)
2 => array (
"a" => "something"
"b" => "something"
"c" => "something"
)
)
Wie würde ich eine Funktion zu ersetzen, die Werte eines Arrays nur auf dem Array-Schlüssel mit b gelten ? Normalerweise würde ich einfach ein neues Array mit einer foreach-Schleife erstellen und die Funktion anwenden, wenn der Array-Schlüssel b ist, aber ich bin nicht sicher, ob es der beste Weg ist. Ich habe versucht, einen Blick auf viele Array-Funktionen zu werfen und es schien, als ob array_walk_recursive etwas ist, das ich verwenden könnte, aber ich hatte kein Glück, es zu tun, was ich wollte. Wenn ich es nicht gut genug, um zu beschreiben, im Grunde möchte ich in der Lage sein, zu tun, wie der folgende Code tut:
$arr = array();
foreach ($result as $key => $value)
{
foreach ($value as $key2 => $value2)
{
$arr[$key][$key2] = ($key2 == 'b' ? $this->_my_method($value2) : $value2);
}
}
Soll ich mit dem Stick, oder gibt es einen besseren Weg?
Danke, ich hatte array_walk_recursive bereits versucht, wie ich oben sagte, aber es hat nicht funktioniert. Anscheinend habe ich vergessen, das kaufmännische Und vor dem $ item param zu platzieren! Arbeite jetzt. – Joker
Yup, einfacher Fehler zu machen. Zitieren des Handbuchs: 'Wenn Funktionsname mit den tatsächlichen Werten des Arrays arbeiten muss, geben Sie den ersten Parameter von Funktionsname als Referenz an. Dann werden alle Änderungen, die an diesen Elementen vorgenommen werden, im ursprünglichen Array selbst vorgenommen. – thirtydot