PHP5: ¿Agregar cosas a una matriz multidimensional dada una ubicación de cualquier longitud?
-
06-07-2019 - |
Pregunta
// dada la siguiente matriz:
$data = array(
0=>array(
"data"=>"object1",
"col"=>array(
0=>array(
"data"=>"object2",
"col"=>array(
0=>array(
"data"=>"object3",
),
1=>array(
"data"=>"object4",
),
)
),
1=>array(
"data"=>"object5",
"col"=>array()
),
)
)
);
// Se puede agregar un nuevo objeto o reemplazar uno existente dada una posición de cualquier longitud // array (0), array (1,0), array (1,0,0), etc. ...
$data = add($data, array(0,0,1), "new_object");
function add($data, $position, $object) {
// this has to be produced based the location:
$data[0]["col"][0]["col"][1]["data"] = "new_object";
return $data;
}
¿Hay alguna forma sensata de hacerlo en PHP además de crear $ data. " [0] [" col "] [0] [" col "] [1] [" data "] "
?
Solución
Debe haber una mejor estructura de datos que esa matriz enredada. 6 dimensiones son demasiadas en la mayoría de los casos. Parece que hay alguna estructura repetida allí. ¿Quizás podrías capitalizar eso? No hay "sano" manera, como lo pones, para acceder a un conjunto de locos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow