找到另一个数组中的所有数组元素

时间:2011-07-22 09:03:49

标签: php arrays

我有两个数组 -

$ar = array("a","b","c");
$xy = array("a","b","c","d","e");

我必须找到$ar$xy中的每个元素。如果所有元素都在$xy中,那么它应该返回true。

我使用in_array()但是虽然找到了一个元素,但它返回true。

感谢任何帮助。 感谢。

5 个答案:

答案 0 :(得分:4)

array_diff[Docs]返回一个数组,其中包含第一个数组中不存在于任何其他数组中的所有条目:

$return = (bool) count(array_diff($ar, $xy));

答案 1 :(得分:2)

您可以使用array_intersect

附加一些代码(感谢Brendan):

return (count($ar) == count(array_intersect($xy, $ar)));

答案 2 :(得分:0)

$found = true;
foreach ($ar as $r) {
    if (!in_array($r, $xy)) {
        $found = false;
        break;
    }
}

答案 3 :(得分:0)

function array_equal($ar, $xy) {
  return !array_diff($ar, $xy) && !array_diff($ar, $xy);
}

这就是你使用它的方式。

if(array_equal($ar, $xy) {
  // etc...
}

答案 4 :(得分:0)

function in_array_all($x, $y){

    $true = 0;
    $count = count($x);

    foreach($x as $key => $value){
        if(in_array($value, $y)) $true++;
    }

    return ($true == $count)? true: false;

}

$ar = array("a","b","c"); $xy = array("a","b","c","d","e");

echo in_array_all($ar, $xy);