使用数组_键访问嵌套关联数组(PHP)
我正在尝试访问嵌套关联数组:使用数组_键访问嵌套关联数组(PHP),php,arrays,associative-array,Php,Arrays,Associative Array,我正在尝试访问嵌套关联数组: $data = array('1'=>'value1','2'=>'value2','3'=>array('one','two')) 键“3”的值是一个数组 因为我需要循环我的值,所以我提取了给定数组的键: $keys = array_keys($data); 并用于获取与以下项关联的值: foreach(range(1, 10) as $val): echo "key: ".$keys[$val]; echo "value: ".$da
$data = array('1'=>'value1','2'=>'value2','3'=>array('one','two'))
键“3”的值是一个数组
因为我需要循环我的值,所以我提取了给定数组的键:
$keys = array_keys($data);
并用于获取与以下项关联的值:
foreach(range(1, 10) as $val):
echo "key: ".$keys[$val];
echo "value: ".$data[$keys[$val]];
endforeach;
现在我想访问与“3”相关的值。
使用$data[$keys[$val]]不起作用,因为我得到的是数组,而不是值
我的问题是:例如,如何使用接近$data[$keys[$val]]的语法访问值“one” 您应该添加一个条件来检查值是字符串还是数组。 如果它是一个字符串-只需回显它,否则-访问该数组key=0中的第一个值,将打印“one”或使用另一个foreach循环访问所有这些数组的值
foreach(range(1, 10) as $val):
echo "key: ".$keys[$val];
echo "value: ";
if(is_array($data[$keys[$val]])){ //Is it an array?
//echo 'one'
echo $data[$keys[$val]][0];
//or all the values with a loop
foreach($data[$keys[$val]] as $val2){
echo $val2;
echo ",";
}
} else { //it's not an array, we can simply echo it.
echo $data[$keys[$val]];
}
endforeach;
迭代数组的方式是否有特定的原因?一个简单的foreach$data作为$key=>$value{}将获得相同的结果。