2011-01-08 18 views
2

是使用密鑰相交或價值之更有效率相交如果兩個鍵和值有例如相同的內容:這是比較有效的PHP:array_intersect()或array_intersect_key()

Array 
(
    [743] => 743 
    [744] => 744 
    [745] => 745 
    [746] => 746 
    [747] => 747 
    [748] => 748 
) 

有在使用一個或另一個具有相同值時的性能差異。類似於使用雙引號或單引號的區別?

+0

如果只是幾十個鍵,那麼很可能無所謂 - 在這種情況下,從代碼可讀性角度選擇最好的。 – 2011-01-08 18:48:46

回答

10

從另一篇文章:I have two unordered integer arrays, and i need to know how many integers these arrays have in common

根據您的資料(大小),你 可能需要使用 array_intersect_key()代替 array_intersect()。顯然, 實施array_intersect (測試PHP 5.3)的不爲在陣列A的每個元素 通過陣列使用任何 優化/緩存/無論如何但 循環和比較 的值逐一的散列表查找是 難以置信比那更快。

+0

非常有趣。 +1 – BoltClock 2011-01-08 18:52:13