Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 类属性的动态多维数组键_Php_Arrays_Oop_Multidimensional Array - Fatal编程技术网

Php 类属性的动态多维数组键

Php 类属性的动态多维数组键,php,arrays,oop,multidimensional-array,Php,Arrays,Oop,Multidimensional Array,是否可以使用数组中定义的键创建多维数组?是的,根据一堆堆栈溢出的答案,它是。这里有一个: 印刷品 Array ( [a] => Array ( [b] => Array ( [c] => yay ) ) ) 对于类属性也可以这样做吗 这是我的收藏课的一个赤裸裸的版本。方法set\u at应向$data属性添加多维数组,方法与使用_键插入函数的方法相同 class A { protected $data = array(); public function

是否可以使用数组中定义的键创建多维数组?是的,根据一堆堆栈溢出的答案,它是。这里有一个:

印刷品

Array ( [a] => Array ( [b] => Array ( [c] => yay ) ) ) 
对于类属性也可以这样做吗

这是我的收藏课的一个赤裸裸的版本。方法
set\u at
应向
$data
属性添加多维数组,方法与
使用_键插入
函数的方法相同

class A {

    protected $data = array();

    public function set($key, $value) {
         $this->data[$key] = $value;
    }

    public function set_at(array $keys, $value) {

    }

}
我尝试过使用_键对插入_进行几次修改,但均无效。我可以设置属性的键,但不能为“最后一个”赋值


请有人给我指一下正确的方向好吗?提前谢谢

在重新创建“密钥设置器”功能的过程中,我能够回答我自己的问题(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;

}

你的“几乎成功”的示例代码在哪里?@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;

}