如何在第一个数组数据中搜索第二个数组?

时间:2015-01-03 03:09:07

标签: php arrays

在php中,我是php的新手,有人帮我这个吗? 我有两个数组,在Array2我有两条记录,我想检查Array2的数据是否在Array1,我如何检查Array2的数据Array1它是否可用!

提前致谢

数组1

    [items] => Array
    (
        [0] => Array
            (
                [abc] => z1
                [xyz] => cool
                [val] => 2.32
                [color] => D
             )
         [1] // i have 5o records in array1
     );

数组2

    [items] => SearchArray
    (
        [0] => Array
            (
                [abc] => z1
                [xyz] => cool
                [val] => 2.32
                [color] => D
             )
         [1] // i have 2 records
     );

2 个答案:

答案 0 :(得分:2)

请尝试使用此代码 - 我希望它有所帮助:

$matches = array();

for($i2 = 0; $i2 < count($Array2); $i2++)
{
    for($i1 = 0; $i1 < count($Array1); $i1++)
    {
        $bMatch = TRUE;
        foreach($Array1[$i1] as $key => $val)
        {
            if($Array2[$i2][$key] !== $val)
            {
                $bMatch = FALSE;
                break;
            }
        }
        if($bMatch)
        {
            $matches[] = array($i2, $i1);
        }
    }
}

迭代两个数组,比较元素(实际上是子数组),只有当$Array2的子数组的所有元素都等于{{1}的子数组的所有元素时它们才相等。 1}}。如果找到了匹配项,那么$Array1对将添加到($i2, $i1)数组中,因此最后,根据您的示例,您可能会遇到以下情况:

$matches

我希望所做出的假设是恰当的。

答案 1 :(得分:0)

可以使用 array_search 方法。有关更多信息,请查看手册参考:http://php.net/manual/en/function.array-search.php