PHP5: ¿Agregar cosas a una matriz multidimensional dada una ubicación de cualquier longitud?

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

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

¿Fue útil?

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