簡體   English   中英

比較 PHP 中兩個數組的值

[英]Compare to values of two arrays in PHP

嗨,我想比較 2 個數組的所有值,並以 true 或 false 結束。 我正在使用下面的代碼,並認為結果是 false 。 但事實並非如此,當最后一行運行時,我希望顯示類似

數組 ( [0] => 0 )

但我沒有顯示所以假設 php 很高興沒有區別

我的代碼是

        $before = array('1', '1', '0', '0', '1', '0' ) ;
        $after =  array('0', '1', '0', '0', '1', '0' ) ;

        $new_array= array_diff($before,$after);

        print_r ($new_array) ;

肯定 array_diff 應該在這里發現差異嗎? 任何幫助都會非常感謝

array_diff給出了哪些元素在$before但不在$after 由於兩個數組均由'0''1' ,因此它返回一個空數組。

您正在尋找的是array_diff_assoc ,它同時查看鍵和值。

請注意,您獲得的輸出將不是Array( [0] => 0 ) ,而是Array( [0] => 1 ) ,因為它給出了第一個數組中不存在的元素.

如果您希望其他輸出,則需要執行array_diff_assoc($after, $before)

    $before = array('1', '1', '0', '0', '1', '0' ) ;
    $after =  array('0', '1', '0', '0', '1', '0' ) ;

    $new_array= array_diff_assoc($before,$after);

    print_r ($new_array) ;

http://php.net/manual/en/function.array-diff.php

“$array1 中的多次出現都以相同的方式處理。”

所以,因為你有一個零和一個,所以一切都是“相同的”。

是的, array_diff確實發現了差異。 它找出以下數組與第一個數組之間的差異。 但是,它不會比較 0 到 0 和 1 到 1。 它只是檢查 Array1 中的每個值是否在 Array2 ... ArrayN 中。 此函數返回一個數組,其中包含 Array1 中在其他數組中未找到的所有事件,而不是 true/false 布爾值。 請參閱文檔中的示例 1。

嗨,我想比較 2 個數組的所有值並以真或假結束

$bool = ($array1 == $array2);

http://us2.php.net/manual/en/language.operators.array.php

這聽起來可能很傻,但比較兩個不同長度的數組不會產生預期的差異。 首先檢查數組的長度,如果它們匹配,使用array_diff 否則你的差異將永遠是空的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM