我有一个PHP数组,如下所示:
array (size=3)
'CA,Santa Barbara' =>
array (size=2)
'state' => string 'CA' (length=2)
'city' => string 'Santa Barbara' (length=13)
'KS,Andover' =>
array (size=2)
'state' => string 'KS' (length=2)
'city' => string 'Andover' (length=7)
'KS,Wichita' =>
array (size=2)
'state' => string 'KS' (length=2)
'city' => string 'Wichita' (length=7)
Run Code Online (Sandbox Code Playgroud)
我需要返回所有具有值的数组成员:
state => 'KS'
Run Code Online (Sandbox Code Playgroud)
我需要得到一个看起来像这样的数组:
array (size=2)
'KS,Andover' =>
array (size=2)
'state' => string 'KS' (length=2)
'city' => string 'Andover' (length=7)
'KS,Wichita' =>
array (size=2)
'state' => string 'KS' (length=2)
'city' => string 'Wichita' (length=7)
Run Code Online (Sandbox Code Playgroud)
是否有PHP数组函数执行此操作?我找到了array_search(),但只返回第一个匹配.我需要所有比赛.
您可以使用array_filter()删除所有不需要的值:
$array = array (
'CA,Santa Barbara' => array (
'state' => 'CA' ,
'city' => 'Santa Barbara' ,
),
'KS,Andover' => array (
'state' => 'KS' ,
'city' => 'Andover' ,
),
'KS,Wichita' => array (
'state' => 'KS' ,
'city' => 'Wichita' ,
),
);
// keep all values with state is "KS":
$out = array_filter($array, function($v) {
return $v['state'] == 'KS';
});
print_r($out);
Run Code Online (Sandbox Code Playgroud)
输出:
Array(
[KS,Andover] => Array(
[state] => KS
[city] => Andover
)
[KS,Wichita] => Array(
[state] => KS
[city] => Wichita
)
)
Run Code Online (Sandbox Code Playgroud)
要在匿名函数中使用另一个变量,可以使用use()以下命令传递它:
$state = 'KS';
$out = array_filter($array, function($v) use ($state) {
return $v['state'] == $state;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |