检查多维数组的每个元素是否可以在另一个多维数组中查找

时间:2017-03-28 04:47:52

标签: php arrays multidimensional-array laravel-5

例如,我想检查" search_this"中的每个元素。数组可以在" all"中找到array(表示all数组具有相同的value元素)。

  $search_this = Array
(
(0) => Array
    (
        (id) => '1',
        (name) => 'a'
    ),

(1) => Array
    (
        (id) => '2',
        (name) => 'b'
    ),

(2) => Array
    (
        (id) => '3',
        (name) => 'c'
    )
);

$all = Array
(
(0) => Array
    (
        (id) => '1',
        (name) => 'a'
    ),

(1) => Array
    (
        (id) => '2',
        (name) => 'd'
    ),

(2) => Array
    (
        (id) => '4',
        (name) => 'c'
    )
);
像这样↑,只有一个元素可以找到"所有"数组,不是全部。 因此结果是错误的。

php中有没有可以执行此操作的功能?

2 个答案:

答案 0 :(得分:0)

$inArray = array();
foreach ($search_this as $search){
    if(in_array($search, $all)){
        $inArray[]=$search;
    }
}
print_r($inArray);

打印结果

阵 (     [0] =>排列         (             [id] => 1            [name] =>一个         ) )

答案 1 :(得分:0)

@chii你可以直接用==运算符检查:

<?php
  $result = $search_this == $all; //return true or false, check only values of the element not data type of element
  $result = $search_this === $all; //return true or false, check both values and data type of the element