Dizideki belirli bir alana dayanan bir dizi sıralamak nasıl?

3 Cevap php

Nasıl dizi içinde iki belirli değerlere dayalı bir dizi sıralayabilirsiniz? Örneğin:

$arr = array(
             array('a' => array('field1' => 'Abc', 'field2' => 'Def'), 'b' => 0)
             array('a' => array('field1' => 'Ghi', 'field2' => 'Jkl'), 'b' => 0)
            );

Ben $arr[$i]['a']['field1'] değişkeni dayalı bu diziyi sıralamak istiyorum. Bunu nasıl yapabilirim?

3 Cevap

Bu bir deneyin:

function cmp($a, $b) {
    if ($a['a']['field1'] == $b['a']['field1'] )
        return 0;
    return ( $a['a']['field1'] < $b['a']['field1'] ) ? -1 : 1;
}

uasort($arr, 'cmp');

This is just a slight alteration of the example provided on the PHP documentation page: http://www.php.net/manual/en/function.uasort.php

Kendi karşılaştırma işlevi oluşturmak ve uasort kullanın

http://us.php.net/manual/en/function.uasort.php

Bu özel durumda (ilk dizenin tür çok ilk madde), basit bir sıralama () yeterli olacaktır.