有没有办法索引具有可变深度的数组?
例如
我在某个地方保存了:
$path_string="Shop,Items,Item";
我将其转换为数组:
$path = explode (",", $path_string);
并且数组中的项目数会影响数组维度。那么,我想像这样索引我的多维数组:
$value = $array[$path[0]][$path[1]][$path[2]][$id][$tag];
我真的想不通。谢谢你的帮助!
有没有办法索引具有可变深度的数组?
例如
我在某个地方保存了:
$path_string="Shop,Items,Item";
我将其转换为数组:
$path = explode (",", $path_string);
并且数组中的项目数会影响数组维度。那么,我想像这样索引我的多维数组:
$value = $array[$path[0]][$path[1]][$path[2]][$id][$tag];
我真的想不通。谢谢你的帮助!
您可以编写一个递归函数来执行此操作:
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); 调用它
$cursor = $array;
foreach (explode(",", $path_string) as $key) {
$cursor = $cursor[$key];
}
var_dump($cursor);