Php 是否可以通过在字符串中传递多维数组的坐标,为比第一个数组更深的层设置多维数组的新值?
下面的代码示例更好地说明了我的问题:Php 是否可以通过在字符串中传递多维数组的坐标,为比第一个数组更深的层设置多维数组的新值?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,下面的代码示例更好地说明了我的问题: <?php $array['a']['b']['c'] = 'value of c'; $coordinates_for_c_key = "['a']['b']['c']"; $array{$coordinates_for_c_key} = 'new value of c'; print $array{$coordinates_for_c_key}; // Output: new value of c 以下是一个如何完成的示例: <?
<?php
$array['a']['b']['c'] = 'value of c';
$coordinates_for_c_key = "['a']['b']['c']";
$array{$coordinates_for_c_key} = 'new value of c';
print $array{$coordinates_for_c_key};
// Output: new value of c
以下是一个如何完成的示例:
<?php
$arr['a']['b']['c'] = 'value of c';
$coordinates_for_c_key = "['a']['b']['c']";
function set_array_value(&$arr, $key, $val) {
eval("\$arr".$key." = '".$val."';");
}
print_r($arr);
set_array_value($arr, $coordinates_for_c_key, "new value of c");
print_r($arr);
?>
为什么不只存储值“a”、“b”和“c”?使用eval
几乎可以将任何表达式用作字符串,但速度会很慢。为什么要这样做?