PHP5: Aggiungere elementi in un array multidimensionale data una posizione di qualsiasi lunghezza?

StackOverflow https://stackoverflow.com/questions/1629862

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 "] " ?

È stato utile?

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
scroll top