PHP5: Aggiungere elementi in un array multidimensionale data una posizione di qualsiasi lunghezza?
-
06-07-2019 - |
Domanda
// dato il seguente array:
$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()
),
)
)
);
// È possibile aggiungere un nuovo oggetto o sostituirne uno esistente in una posizione di qualsiasi lunghezza // array (0), array (1,0), array (1,0,0), ecc ...
$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;
}
Esiste un modo sano di farlo in PHP oltre a creare $ data. " [0] [" col "] [0] [" col "] [1] [" data "] "
?
Soluzione
Deve esserci una struttura dati migliore di quella matrice aggrovigliata. 6 dimensioni sono troppe nella maggior parte dei casi. Sembra che ci sia una struttura ripetuta lì dentro. Forse potresti capitalizzarlo? Non esiste "sano" modo, come dici tu, per accedere a un array folle.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow