是否可以使用在数组中定义的键创建多维数组?是的,根据一堆Stack Overflow的答案,它是。这是一个:Dynamic array keys
function insert_using_keys($arr, array $path, $value) { // See linked answer }
$arr = create_multi_array($arr, array('a', 'b', 'c'), 'yay'));
print_r($arr);
打印
Array ( [a] => Array ( [b] => Array ( [c] => yay ) ) )
类属性是否可以这样做?
这是我的Collection类的准系统版本。方法set_at
应该以与$data
函数相同的方式向insert_using_keys
属性添加多维数组。
class A {
protected $data = array();
public function set($key, $value) {
$this->data[$key] = $value;
}
public function set_at(array $keys, $value) {
}
}
我已尝试对insert_using_keys
进行多次修改但无济于事。我能够将键设置为属性,但不能将值“分配给最后一个”。
有人会指出我正确的方向吗?提前谢谢!
答案 0 :(得分:0)
在重新创建“钥匙制定者”功能的过程中,我能够回答我自己的问题(一直是你的意图,Stefan?)。
以下是代码:
public function set_at(array $keys, $value) {
$first_key = array_shift($keys);
foreach (array_reverse($keys) as $key) {
$value = array($key => $value);
}
$this->data[$first_key] = $value;
}