我有一个包含我希望用作键的值的数组,例如:
$keys = array("first", "second", "third", "fourth");
这些值的计数和内容将在循环内动态变化。我希望它们成为多维数组的键,但是键数组的计数总是会改变,所以虽然这可以用于第一组键:
$multidimensional[$keys[0]][$keys[1]][$keys[2]][$keys[3]] = "some value";
稍后在循环中,键可能是:
$keys = array("first", "second", "gamma", "delta", "theta", "kappa");
所以在循环中使用它:
$multidimensional[$keys[0]][$keys[1]][$keys[2]][$keys[3]] = "some value";
不起作用,并且需要根据键的数量来动态。
我已经浏览了PHP手册中的每个数组函数,似乎无法找到满足此目的的东西。我完全忽视了一些基本的东西吗?也许是一些大括号魔法?
答案 0 :(得分:0)
你去......
function setMultidimensionalValue($value, array $keys, array $multidimensional)
{
$node = &$multidimensional;
foreach ($keys as $key)
{
if (!isset($node[$key]))
$node[$key] = null;
$node = &$node[$key];
}
$node = $value;
return $multidimensional;
}
// Example of usage
$multidimensional = array();
var_dump(setMultidimensionalValue('value', array('first', 'second', 'third'), $multidimensional));