函数in_array 的第一个参数是数组
我遇见的问题,第一个参数$a是数组:
$a = [3,'f','e'];
$b = [3,5,'d','f','e'];var_dump(in_array($a ,$b));
打印出:
bool(false)
第一个参数是单值数据:
var_dump(in_array('f' ,$b));
这时,打印出:
bool(true)
直到查阅到:https://bbs.csdn.net/topics/390611609 的回复,才明白
in_array() 的第一个参数应该是 单值数据
再确认,http://docs.php.net/manual/zh/function.in-array.php,某个值
数组 $a 是 数组 $b 的子集
以下取经自: http://www.jb51.net/article/119956.htm
foreach循环遍历:
foreach($a as $v){
if(in_array($v,$b)){
$flag = 0;
}
}
if($flag){
echo "$ a 是 $ b的子集。";
}else{
echo "$ a 不是 $ b的子集!";
}
array_diff (差集)的使用:
array_diff 的返回值:指在数组 $a 中有,但在数组 $b 中没有的数组元素。·
if( !array_diff( $a ,$b ) ){ #这里取反
echo "数组 $ a 是数组 $ b 的子集。";
}
array_intersect (交集)的使用:
array_intersect 的返回值:指的是在数组 $a 中的所有元素,同时在其他数组中也拥有的元素组成的数组。
if ($a == array_intersect($a, $b)) {
echo "数组$ a 是 数组 $ b 的子集。";
}