索引具有可变深度的数组

时间:2013-11-03 04:12:11

标签: php arrays multidimensional-array indexing

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

e.g。

我有一个保存的地方:

$path_string="Shop,Items,Item";

我将它转换为数组:

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

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

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

我真的无法理解。谢谢你的帮助!

2 个答案:

答案 0 :(得分: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)调用它;

答案 1 :(得分:1)

$cursor = $array;
foreach (explode(",", $path_string) as $key) {
    $cursor = $cursor[$key];
}
var_dump($cursor);