我将一个字符串拆分成数组,给出了一个定界符。因此,创建的这个新数组将包含 values ,我希望将其用作另一个给定数组的索引。
有这样的情况:
// my given array
$array['key1']['key2']['a_given_key']['some_other_given_key'] = 'blablabl';
// the value of my given array
$value = $array['key1']['key2']['a_given_key']['some_other_given_key'];
$string = "key1;key2";
$keys = explode(";", $string);
我想在dinamically(在执行我的PHP脚本期间)调用给定数组的值,但是,使用索引数组$keys
的所有值,并在另外附加我给定数组的索引 ['a_given_key']['some_other_given_key']
。
我希望我已经清楚了 非常感谢。
答案 0 :(得分:0)
要使其工作,您必须使用引用。下面的代码应该按预期工作:
<?php
$string = "key1;key2;key3;key4";
$keys = explode(";", $string);
$array['key1']['key2']['key3']['key4']['a_given_key']['some_other_given_key'] = 'blablabl';
$ref = & $array;
for ($i=0, $c = count($keys); $i<$c ; ++$i) {
$ref = &$ref[$keys[$i]];
}
echo $ref['a_given_key']['some_other_given_key'];
$value = $ref['a_given_key']['some_other_given_key'];
echo $value;
?>
我想在使用引用后添加它,你应该使用:
取消它unset($ref);
如果你不这样做,以后很多行你会运行$ref = 2;
,它会修改你的源数组,所以你必须记住在不再使用它之后取消设置引用。