PHP5:在给定任意长度的位置的情况下将东西添加到多维数组中?

时间:2009-10-27 10:19:26

标签: php arrays multidimensional-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()
      ),
    )
  )
);

//在给定任意长度的位置的情况下,可以添加新对象或替换现有对象 // array(0),array(1,0),array(1,0,0)等...

$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;
}

除了创建$data."[0]["col"][0]["col"][1]["data"]"之外,还有一种理智的方式在PHP中执行吗?

1 个答案:

答案 0 :(得分:1)

必须有比纠结阵列更好的数据结构。在大多数情况下,6个尺寸太多。似乎那里有一些重复的结构。也许你可以利用它?正如你所说,没有“理智”的方式来访问一个疯狂的阵列。