从具有多个值的数组中获取键

时间:2019-01-01 01:12:05

标签: php arrays key

所以我需要返回带有国家/地区值的数字(6、8或10)。  因此,在该示例中,使用“ sweden”其应返回8,但数组的键显然只是Array()。我的数组结构或array_keys的用法是否错误?

$list= array (
  'list' => 
  array (
    6 => 
    array (
        'default',
        'finland'
    ),
    8 => 
    array (
        'sweden',
        'norway'
    ),
    10 => 
    array (
        'germany',
        'belgia'
    ),
  ),
);
print_r(array_keys($list, "sweden"));

返回:Array()

3 个答案:

答案 0 :(得分:3)

您有两个问题。

首先,您要搜索的数组是$list['list'],而不是$list本身。

第二,array_keys()的第二个参数仅对一维数组有用。您有一个二维数组,但是array_keys()不会在嵌套数组内自动搜索。因此,您需要编写自己的循环或使用array_filter()

$results = array();
foreach ($list['list'] as $key => $value) {
    if (array_search('sweden', $value) !== false) {
        $results[] = $key;
    }
}
print_r($results);

答案 1 :(得分:0)

为此使用foreach。

foreach ($list as $key => $value){

}

答案 2 :(得分:0)

我想这就是你想要的

foreach($list as $key => $value ){  
        $arr = array_keys($value);//this has your (6, 8 or 10)         
        foreach($arr as $val){
             print_r($value[$val]);//showing array data of 6,8,10 indexes
        }  
    }

输出: enter image description here