PHP: filtreleme 2 boyutlu bir dizi / çok boyutlu dizi

3 Cevap php

i gibi, aşağıda örnek olarak benim 2 boyutlu bir dizi filtreleme yardıma ihtiyacım var:

array(29) { 
    [0]=>  array(2) { 
        [0]=>  string(16) "Andorra La Vella" 
        [1]=>  string(2) "AD"
    }
    [1]=>  array(2) { 
        [0]=>  string(16) "Andorra La Vella" 
        [1]=>  string(2) "AD" 
    }
    [2]=>  array(2) { 
        [0]=>  string(16) "Andorra La Vella" 
        [1]=>  string(2) "AD" 
    }
    [3]=>  array(2) { 
        [0]=>  string(16) "Andorra La Vella" 
        [1]=>  string(2) "AD" 
    }
    [4]=>  array(2) { 
        [0]=>  string(12) "Les Escaldes" 
        [1]=>  string(2) "AD" 
    }...

nasıl benim diziden herhangi bir gereksiz bir değer filtrelerim? gibi önemli gibi [0] tuşu ile aynı değere sahiptir [1] [2] [3] ve benim diziden bu gereksiz değerini kaldırmak istiyorum.

ben denedim array_filter() ama hayır şans. i birinde birinde, array_splice() ve unset() hayır şans denedi.

php Bunun için herhangi bir yerli dizi fonksiyonu sağlar mı?

thanks,
aji

3 Cevap

Eğer çiftleri kaldırmak isterseniz başka bir thread biraz daha fazla bilgi bulabilirsiniz

Tadını çıkarın!

array_unique() bunu yapabilir mi? Bu iç içe diziler ile çalışır emin değilim.

EDIT: hayır, bunu yapamam.

Note: Note that array_unique() is not intended to work on multi dimensional arrays.

    $to_filter = array(); // your array
    $filtered = array(); // unique values

    array_walk($to_filter, function($v, $k) use (&$filtered) {
        if(!in_array($v, $filtered)) {
            $filtered[] = $v;
        }
    });

Ve nasıl temiz .., PHP 5.3 's ile anonim fonksiyonlar görünüyor.