我正在尝试访问嵌套的关联数组:
$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'?
答案 0 :(得分:1)
您应该添加条件以检查值是字符串还是数组。 如果它是一个字符串 - 只需回显它,否则 - 访问该数组中的第一个值(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;