首页 > 解决方案 > 根据 PHP 中的键值显示数组中的值

问题描述

我有这个数组:

Array
(
    [Europa] => Array
        (
            [0] => Array
                (
                    [AVA_Id] => 1
                    [AVA_Country] => France
                    [AVA_City] => Paris
                )
        )
    [America] => Array
        (
            [0] => Array
                (
                    [AVA_Id] => 2
                    [AVA_Country] => Canada
                    [AVA_City] => Ottawa
                )
        )
)

我想阅读“欧罗巴”部分并了解City该国家是否为France.

你知道为什么这段代码不起作用吗?

foreach($bigArray as $key => $array) {
    $value = $array[2];
    if($bigArray[AVA_Country] == 'France')) {
        echo $bigArray['AVA_City']
    }
    else {
        echo 'No city found';        
    }
}

谢谢。

标签: phparrays

解决方案


You should be checking $array in your loop, not $bigArray. Note you are also missing 's around AVA_Country, and there is an extra ) in your if statement and a missing ; from echo $value['AVA_City']. Additionally, you need to use another level of nesting to access the AVA* values, and there is no $array[2] value in your sample data so I've removed that line of code.

$found = false;
foreach($bigArray as $key => $array) {
    foreach ($array as $value) {
        if($value['AVA_Country'] == 'France') {
            echo $value['AVA_City'];
            $found = true;
        }
    }
    if (!$found) echo "No city found";
}

Output:

Paris

Demo on 3v4l.org


推荐阅读