檢查數組中的值是否存在所有值是一種快速且最便宜的方法。數組檢查所有值是否存在
讓說我有一個數組
$a = array(1,2,3,4,5,6);
我想匹配它陣列
$b = array(6,5,1,3,2,4)
$c = array(1,9,2,3,4,5)
$d = array(6,5,4,3,2,1)
$e = array(1,2,3,4,5,6,7)
$f = array(2,3,4,1,5,6)
.....
etc, etc
在上述$ A將匹配$ B和$ F,因爲這些值是相同的,儘管不在相同的指數。
現在我知道我可以使用foreach/in_array/array_search等等,並遍歷每一個循環,並嘗試匹配的值。如果數組的大小增加以及數組的數量,那麼這可能會非常快速地變得非常昂貴。我可能有100萬到200萬的那些陣列,然後以上述方式循環播放這些將是一個表演惡夢。
我的問題是達到這個目標的最好方法是什麼。你們會怎麼做呢?任何想法都會有所幫助。謝謝
編輯 正如我在下面的評論中提到的,我不是在尋找被認爲是重複的問題中給出的答案。我想有O(1)解決方案,而不是n^2。那裏的解決方案不會幫助我。我想我需要把這個分開,或者把它分成幾個陣列等等。想象一下1-2百萬個陣列,現在想象有三億個陣列。該解決方案不會擴展。
您排除的foreach?那麼,沒有循環......? – Debflav 2015-02-12 08:33:20
也許array_diff函數? – Maris 2015-02-12 08:34:15
我看着這個解決方案http://stackoverflow.com/questions/7542694/in-array-multiple-values,但我不知道如果性能會更好 – Autolycus 2015-02-12 08:35:31