用PHP输出数组信息

时间:2018-08-27 18:09:16

标签: php arrays

我有以下数组:

$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 />';
}

但是它不起作用,因为什么也没输出。

能帮我吗?

谢谢。

3 个答案:

答案 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