array_diff büyük diziler taşıma

0 Cevap

Ben iki diziyi karşılaştırmak için çalışıyorlar. Array_intersect kullanırken herhangi bir sorun sunuyor. Array_diff ve ~ 5.000 değerleri ile dizileri kullanarak, bu çalışıyor. I ~ 10,000 değerlerine olsun ben array_diff almak zaman, komut ölür. Error_reporting dönüm şey vermedi.

Ben kendi array_diff işlevi oluşturma çalıştı:

function manual_array_diff($arraya, $arrayb) {
    foreach ($arraya as $keya => $valuea) {
        if (in_array($valuea, $arrayb)) {
            unset($arraya[$keya]);
        }
    }
    return $arraya;
}

Kaynak: http://stackoverflow.com/questions/2479963/how-does-array-diff-work

Ben resmi array_diff daha, ama bu ~ 10.000 dizileri işleyebilir daha az etkili olması beklenir. I ~ 15,000 olsun, ne yazık ki, hem array_diffs başarısız.

Ben farklı bir makinede aynı kodu denedim ve gayet iyi çalışır, bu nedenle kod veya PHP ile ilgili bir sorun değil. Bu belirli bir sunucuda bir yere belirlenen bazı sınır olmalı. Ben bu sınırın etrafında almak ya da değiştirmek ya da sadece ne olduğunu öğrenmek nasıl herhangi bir fikir?

0 Cevap