我有一个像这样的字符串:
$string = 'one/two/three/four';
我把它变成一个数组:
$keys = explode('/', $string);
该数组可以具有任意数量的元素,例如1、2、5等。
如何为多维数组分配一个特定的值,但是如何使用$keys上面创建的I标识要插入的位置?
$keys
喜欢:
$arr['one']['two']['three']['four'] = 'value';
抱歉,这个问题令人困惑,但是我不知道如何更好地解释它
这是不平凡的,因为您想嵌套,但是应该这样:
function insert_using_keys($arr, $keys, $value){ // we're modifying a copy of $arr, but here // we obtain a reference to it. we move the // reference in order to set the values. $a = &$arr; while( count($keys) > 0 ){ // get next first key $k = array_shift($keys); // if $a isn't an array already, make it one if(!is_array($a)){ $a = array(); } // move the reference deeper $a = &$a[$k]; } $a = $value; // return a copy of $arr with the value set return $arr; }