0

有没有办法索引具有可变深度的数组?

例如

我在某个地方保存了:

$path_string="Shop,Items,Item";

我将其转换为数组:

$path = explode (",", $path_string);

并且数组中的项目数会影响数组维度。那么,我想像这样索引我的多维数组:

$value = $array[$path[0]][$path[1]][$path[2]][$id][$tag];

我真的想不通。谢谢你的帮助!

4

2 回答 2

1

您可以编写一个递归函数来执行此操作:

function my_array_conversion($array) {

$ret = array();

  var_dump($array);

   if(count($array) > 1) {
      $c = $array[0];
      array_splice($array, 0, 1);
      $ret[$c] = my_array_conversion($array);
   }
   else 
      $ret[$array[0]] = array();

   return $ret;
}

用 $array = array($path[0], $path[1], $path[2], $id, $tag); 调用它

于 2013-11-03T04:20:17.037 回答
1
$cursor = $array;
foreach (explode(",", $path_string) as $key) {
    $cursor = $cursor[$key];
}
var_dump($cursor);
于 2013-11-03T04:44:05.153 回答