php - 检查数组是否在数组中并在 PHP 中匹配
问题描述
我有一个关联数组,想检查一个数组是否在该关联数组中,如果是,我想获取匹配的数组。
我的关联数组看起来像这样:
$assoc_array = array(
array(
'firstname' => 'John',
'lastname' => 'Doe',
'age' => 26
),
array(
'firstname' => 'Sophia',
'lastname' => 'Smith',
'age' => 30
)
);
然后,如果我想检查这个数组:
$array = array(
'firstname' => 'John',
'lastname' => 'Doe'
);
它会给我这个结果:
array(
'firstname' => 'John',
'lastname' => 'Doe',
'age' => 26
);
任何帮助将不胜感激。
解决方案
如果您循环数组并使用array_intersect,它将返回名字和姓氏。
如果没有匹配,则返回空数组。
这意味着如果匹配项为真,我们可以做一个简单的 if 操作,然后将子数组添加到您的新数组中。
foreach($assoc_array as $sub){
$match = array_intersect($sub, $array);
if($match) $new[] = $sub;
}
var_dump($new);
或将其浓缩为:
foreach($assoc_array as $sub){
if(array_intersect($sub, $array)) $new[] = $sub;
}
var_dump($new);
推荐阅读
- ios - Swift 4.2 中的 Webview 应用程序
- html - 如何将数据表内容从一个组件发送到另一个组件?
- android-activity - 有条件地扩展活动
- spring - 杰克逊:时区与默认系统时区不同?
- android - 科尔多瓦方向锁垂直翻转不起作用
- r - R:在特定的行和列上循环自定义函数
- wix - util:RegistrySearch 变量可以与刻录中的 ExePackage 的 SourceFile 一起使用吗?
- excel - 自定义功能区按钮打开宏文件但随后切换焦点
- vba - VBA,如何将函数作为另一个函数的参数传递
- android - 无法使用给定参数调用 requestLocationUpdates