函數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 的子集。";
}