Ho un set di risultati come un array da un database che assomiglia:PHP manipolare array multidimensionale valori
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"
)
)
Come dovrei applicare una funzione per sostituire i valori di un array solo sul tasto array con b ? Normalmente vorrei solo ricostruire un nuovo array con un ciclo foreach e applicare la funzione se il codice dell'array è b, ma non sono sicuro che sia il modo migliore. Ho provato a dare un'occhiata a molte funzioni di array e sembrava che array_walk_recursive fosse qualcosa che potrei usare, ma non ho avuto fortuna nel fargli fare quello che volevo. Se io non sto descrivendo abbastanza bene, in fondo io voglio essere in grado di fare come il codice qui sotto fa:
$arr = array();
foreach ($result as $key => $value)
{
foreach ($value as $key2 => $value2)
{
$arr[$key][$key2] = ($key2 == 'b' ? $this->_my_method($value2) : $value2);
}
}
Devo bastone con quello, o c'è un modo migliore?
Grazie, avevo già provato array_walk_recursive come ho detto sopra, ma non ha funzionato. A quanto pare ho dimenticato di posizionare la e commerciale prima del parametro $ item! Funzionando ora. – Joker
Sì, errore facile da fare. Citando il manuale: 'Se funcname deve funzionare con i valori effettivi dell'array, specificare il primo parametro di funcname come riferimento. Quindi, tutte le modifiche apportate a tali elementi verranno apportate nell'array originale stesso. – thirtydot