编辑自原本暗示只有1次访问的内容
如果我有一个包含x个数组的数组,每个数组都是以下形式:
array('country' => array('city' => array('postcode' => value)))
还有一个可能是数组的其他内容
array('country', 'city', 'postcode') or array('country', 'city')
根据我需要检索的内容,在使用第二个数组来确定第一数组中的索引级别并访问它。
编辑自原本暗示只有1次访问的内容
如果我有一个包含x个数组的数组,每个数组都是以下形式:
array('country' => array('city' => array('postcode' => value)))
还有一个可能是数组的其他内容
array('country', 'city', 'postcode') or array('country', 'city')
根据我需要检索的内容,在使用第二个数组来确定第一数组中的索引级别并访问它。
$cur = &$cur[$v];
,您可以读取和修改原始值:$array = array('x' => array('y' => array('z' => 20)));
$keys = array('x', 'y', 'z');
// Start nesting new keys
$cur = &$array;
foreach($keys as $v){
$cur = &$cur[$v];
}
echo $cur; // prints 20
$cur = 30; // modify $array['x']['y']['z']
$array['capital']['city']['postcode']
中的确切项,那么如何有20个国家呢?无论如何,我认为这是另一个问题,请开一个新问题。 - dynamic$array1 = array('x' => array('y' => array('z' => 20)));
$keys = array('x', 'y', 'z');
$array_data = &$array1;
foreach($keys as $key){
$array_data = &$array_data[$key];
}
echo $array_data;
好的,我很抱歉最初没有表达清楚我的问题,但我现在已经用变量变量解决了它,如下所示:
$keystring = '';
foreach ($keys as $key) {
$keystring .= "['$key']";
}
然后迭代主数组,对其中的每个国家条目进行访问,并按以下方式访问所需值:
eval('$value = $entry' . "$keystring;");
$array['capital']['city']['postcode']
中有多个值,正如我在评论中所解释的那样。 - dynamic