首页 > 解决方案 > 在另一个二维数组中搜索数组

问题描述

我正在创建一个搜索功能,其中需要从两个数组中查找匹配结果$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>';

        }

    }

}

标签: phparraysmultidimensional-array

解决方案


您可以使用array_intersect
这将为您提供一个数组,其中键位于匹配的数组 2 的子数组中。
这些值是匹配的值。

Foreach($array2 as $key => $arr){
    $match[$key] = array_merge([$array2[$key][0]], array_intersect($arr, $array1));
}

Var_dump($match);

https://3v4l.org/vVCiQ


推荐阅读