php - 在另一个二维数组中搜索数组
问题描述
我正在创建一个搜索功能,其中需要从两个数组中查找匹配结果$array1
是一组关键字,我正在执行搜索,$array2
其中是多维数组
数组示例:
$array1 = ['Agriculture & Farming','Modern','Monograms'];
$array2 = [[1,"Agriculture & Farming","Bold","000"],[2,"Agriculture & Farming","Bold","f44336"],[3,"Agriculture & Farming","Bold","E91E63"],[4,"Agriculture & Farming","Bold","9C27B0"],[5,"Agriculture & Farming","Bold","673AB7"],[6,"Agriculture & Farming","Bold","3F51B5"],[7,"Agriculture & Farming","Bold","2196F3"];
我需要从 $arrays2 中找到匹配的关键字项目 id,但它不起作用我遍历两个数组并匹配但显示错误的结果
这就是我现在正在尝试的方式,但它给出了错误的结果:
foreach($array2 as $itemkey) {
$k1 = $itemkey[1];
$k2 = $itemkey[2];
$k3 = $itemkey[3];
$ResutItem= $item;
foreach($array1 as $searckKey ) {
if ($searckKey == $k1 || $searckKey == $k2 || $searckKey == $k3) {
echo implode(" ", $ResutItem).
'<br>';
}
}
}
解决方案
您可以使用array_intersect。
这将为您提供一个数组,其中键位于匹配的数组 2 的子数组中。
这些值是匹配的值。
Foreach($array2 as $key => $arr){
$match[$key] = array_merge([$array2[$key][0]], array_intersect($arr, $array1));
}
Var_dump($match);
推荐阅读
- javascript - 如何从经度和纬度中获得1英里的纬度三角洲和经度三角洲?
- css - CSS mix-blend-mode:跨浏览器和监视器的差异不一致
- java - 如何使用 Java James jDKIM 在简单的独立应用程序中验证签名
- postgresql - 在 PostgreSQL / YugabyteDB 中导入 csv 文件时如何转义引号
- c++ - 哔声转义序列在 Vscode 终端上不起作用
- php - 使用变量在PHP中按日期从最后到第一个对JSON数组进行排序
- xml - 当我设置一个新的 android studio 项目时,我默认得到这个背景
- css - 如何删除:活动状态下的多余边框?顺风
- sharepoint - 我在项目服务器 2019 上工作 Timehseet API 在这里不起作用是 api 的链接和邮递员的测试结果
- less - 如何使用 Parcel.js Bundler 将变量传递给 LESS 编译器