天天看點

in_array 函數的第一個參數是數組 及 此數組是另一個數組子集的判斷

函數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,某個值

in_array 函數的第一個參數是數組 及 此數組是另一個數組子集的判斷

數組 $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  (差集)的使用:
in_array 函數的第一個參數是數組 及 此數組是另一個數組子集的判斷

        array_diff 的傳回值:指在數組 $a 中有,但在數組 $b 中沒有的數組元素。·

        if( !array_diff( $a ,$b ) ){    #這裡取反

            echo     "數組 $ a 是數組 $ b 的子集。";

        }

array_intersect  (交集)的使用:    
in_array 函數的第一個參數是數組 及 此數組是另一個數組子集的判斷

        array_intersect 的傳回值:指的是在數組 $a 中的所有元素,同時在其他數組中也擁有的元素組成的數組。

        if ($a == array_intersect($a, $b)) {

            echo    "數組$ a 是 數組 $ b 的子集。";

        }

php