關於array_diff_uassoc的疑問

來源:互聯網
上載者:User
源碼:

 $b)? 1:-1;  }  $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");  $array2 = array("a" => "green", "yellow", "red");  $result = array_diff_uassoc($array1, $array2, "key_compare_func");  print_r($result);

結果:

string(1) "b"string(1) "a"=====1string(1) "b"string(1) "c"=====2int(0)string(1) "b"=====3string(1) "a"int(0)=====4int(0)string(1) "a"=====5int(1)int(0)=====6string(1) "a"int(0)=====7string(1) "a"string(1) "a"=====8int(0)string(1) "a"=====8int(0)int(0)=====9string(1) "b"string(1) "a"=====9string(1) "b"int(0)=====10string(1) "b"int(1)=====11string(1) "c"string(1) "a"=====12string(1) "c"int(0)=====13string(1) "c"int(1)=====14Array(    [b] => brown    [c] => blue    [0] => red)

請問:

對於這個函數,他的比較原理是什嗎?為什麼要進行14次比較?

回複內容:

源碼:

 $b)? 1:-1;  }  $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");  $array2 = array("a" => "green", "yellow", "red");  $result = array_diff_uassoc($array1, $array2, "key_compare_func");  print_r($result);

結果:

string(1) "b"string(1) "a"=====1string(1) "b"string(1) "c"=====2int(0)string(1) "b"=====3string(1) "a"int(0)=====4int(0)string(1) "a"=====5int(1)int(0)=====6string(1) "a"int(0)=====7string(1) "a"string(1) "a"=====8int(0)string(1) "a"=====8int(0)int(0)=====9string(1) "b"string(1) "a"=====9string(1) "b"int(0)=====10string(1) "b"int(1)=====11string(1) "c"string(1) "a"=====12string(1) "c"int(0)=====13string(1) "c"int(1)=====14Array(    [b] => brown    [c] => blue    [0] => red)

請問:

對於這個函數,他的比較原理是什嗎?為什麼要進行14次比較?

查閱了一下源碼,在比較之前,PHP還進行了一次排序操作,排序時也會採用這個回呼函數,這也就是你會看到結果中會有bc這兩個出現在同一個數組中的鍵進行比較的記錄。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.