【发布时间】:2013-06-28 07:54:20
【问题描述】:
我有一个这样的数组:
<?php
$arr = [
'a' => [
'a1' => [
'A11', 'A12', 'A13'
]
]
];
我可以轻松更改A13 元素:
$arr['a']['a1'][2] = 'A13 NEW';
但我想用一个函数来做到这一点,像这样:
f($arr, ['a', 'a1', 2], 'A13 New');
我使用eval 编写此函数,但我不喜欢它。
<?php
function f(&$array, $index, $value) {
$e = '$array';
for ($i = 0, $l = count($index); $i < $l; $i++) {
$e .= '[$index[' . $i . ']]';
}
$e .= ' = $value;';
// now we have `$e` like this
// $array[$index[0]][$index[1]][$index[2]] = $value;
eval($e);
}
不使用eval如何编写这个函数?
【问题讨论】:
标签: php arrays function multidimensional-array