所以我需要返回带有国家/地区值的数字(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()
答案 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)