que tienen un resultado en forma de matriz a partir de una base de datos que se parece a:PHP manipular matriz multidimensional valores
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"
)
)
¿cómo iba a aplicar una función para reemplazar los valores de una matriz únicamente en la clave de la matriz con b ? Normalmente, simplemente reconstruiría una nueva matriz con un bucle foreach y aplicaría la función si la clave de la matriz es b, pero no estoy seguro de si es la mejor manera. He intentado echar un vistazo a muchas funciones de matriz y parecía que array_walk_recursive es algo que podría usar, pero no tuve suerte en hacer que hiciera lo que quería. Si no estoy describiendo lo suficientemente bien, básicamente, quiero ser capaz de hacer lo que hace el código de abajo:
$arr = array();
foreach ($result as $key => $value)
{
foreach ($value as $key2 => $value2)
{
$arr[$key][$key2] = ($key2 == 'b' ? $this->_my_method($value2) : $value2);
}
}
¿Debo seguir con eso, o hay una mejor manera?
Gracias, ya había probado array_walk_recursive como dije anteriormente, pero no funcionó. ¡Al parecer, olvidé colocar el símbolo comercial antes del parámetro $ item! Trabajando ahora. – Joker
Sí, error fácil de hacer. Citando el manual: 'Si funcname necesita trabajar con los valores reales de la matriz, especifique el primer parámetro de funcname como referencia. Entonces, cualquier cambio realizado en esos elementos se realizará en la matriz original en sí. " – thirtydot