我有以下数组:
$features = array(
array(
'name' => 'Communication',
'plans' => array(
'standard' => 'yes',
'advanced' => 'yes'
)
),
array(
'name' => 'French',
'plans' => array(
'standard' => 'no',
'advanced' => 'yes'
)
)
);
我该如何输出:
- Communication : standard > yes
- Communication : advanced > yes
- French : standard > no
- French : advanced > yes
我尝试过的事情:
foreach ($features as $feature => $info) {
echo $feature['name'].' : ' ['plans']['standard'].' > '.$feature['name']['plans']['standard'].'<br />';
echo $feature['name'].' : ' ['plans']['standard'].' > '.$feature['name']['plans']['advanced'].'<br />';
}
但是它不起作用,因为什么也没输出。
能帮我吗?
谢谢。
答案 0 :(得分:1)
尝试一下:
foreach ($features as $feature => $info) {
echo $info['name'].' : standard > ' . $info['plans']['standard'].'<br />';
echo $info['name'].' : advanced > ' . $info['plans']['advanced'].'<br />';
}
您在循环中引用了错误的变量
答案 1 :(得分:1)
这应该可以解决问题。您应该使用$info
来访问内部数据,因为每次执行foreach循环时,您都会进入父数组内部。
$features = array(
array(
'name' => 'Communication',
'plans' => array(
'standard' => 'yes',
'advanced' => 'yes'
)
),
array(
'name' => 'French',
'plans' => array(
'standard' => 'no',
'advanced' => 'yes'
)
)
);
foreach ($features as $feature => $info) {
echo $info['name']. ' : standard > '. $info['plans']['standard'] . '<br />';
echo $info['name']. ' : advanced > '. $info['plans']['advanced'] . '<br />';
}
答案 2 :(得分:1)
您应该使用嵌套的for循环,因为计划本身就是如下数组
foreach ($features as $feature) {
foreach($feature['plans'] as $key=>$val){
echo $feature['name'].' : '. $key.' > '.$val.'<br />';
}
}
我得到以下输出
Communication : standard > yes
Communication : advanced > yes
French : standard > no
French : advanced > yes