[英]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);
這聽起來可能很傻,但比較兩個不同長度的數組不會產生預期的差異。 首先檢查數組的長度,如果它們匹配,則使用array_diff
。 否則你的差異將永遠是空的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.