我有两个数组 -
$ar = array("a","b","c");
$xy = array("a","b","c","d","e");
我必须找到$ar
中$xy
中的每个元素。如果所有元素都在$xy
中,那么它应该返回true。
我使用in_array()
但是虽然找到了一个元素,但它返回true。
感谢任何帮助。 感谢。
答案 0 :(得分:4)
array_diff
[Docs]返回一个数组,其中包含第一个数组中不存在于任何其他数组中的所有条目:
$return = (bool) count(array_diff($ar, $xy));
答案 1 :(得分:2)
答案 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);