2015-12-30 15 views
-1

У меня есть следующий массив:как отсортировать многомерный массив

Array 
(
[0] => Array 
    (
     [days] => Wed 
     [count] => 0 
    ) 

[1] => Array 
    (
     [days] => Tue 
     [count] => 0 
    ) 

[2] => Array 
    (
     [days] => Mon 
     [count] => 1 
    ) 

[3] => Array 
    (
     [days] => Sun 
     [count] => 0 
    ) 

И я хочу, чтобы отсортировать его, так выглядит следующим образом:

Array 
(
    [3] => Array 
     (
      [days] => Sun 
      [count] => 0 
     ) 

    [2] => Array 
     (
      [days] => Mon 
      [count] => 1 
     ) 

    [1] => Array 
     (
      [days] => Tue 
      [count] => 0 
     ) 

    [0] => Array 
     (
      [days] => Wed 
      [count] => 0 
     ) 

Может ли один помочь мне сделать это?

+0

Определить "как следующий массив". Обратный порядок клавиш? Восходящий порядок 'дней' в подмассиве? – Timekiller

+1

Возможный дубликат [Как я могу сортировать массивы и данные в PHP?] (Http://stackoverflow.com/questions/17364127/how-can-i-sort-arrays-and-data-in-php) –

ответ

1
usort($myArray, function($a, $b) { 
    return $a['days'] - $b['days']; // your operation for checking value 
}); 
+0

thanks @ Ishan это отлично работает ... – kc1994

+0

знак как принято :) –

1

Попробуйте usort: Если вы все еще на PHP 5.2 или выше, вы должны определить функцию сортировки первого:

function sortByOrder($a, $b) { 
    return $a['days'] - $b['days']; 
} 

usort($myArray, 'sortByOrder'); 

Начиная с PHP 5.3, вы можете использовать анонимную функцию :

usort($myArray, function($a, $b) { 
    return $a['days'] - $b['days']; 
}); 

И, наконец, с PHP 7 вы можете использовать "космический корабль оператор":

usort($myArray, function($a, $b) { 
    return $a['days'] <=> $b['days']; 
}); 
1
function compareOrder($a, $b) 
    { 
     return $a['days'] - $b['days']; 
    } 

    usort($array, 'compareOrder'); 
1

Следующая функция PHP может помочь:

bool array_multisort (array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]]) 
0

Может быть, это поможет вам

usort($inputArray, function($first, $second) { 
    return $first['days'] - $second['days']; 
}); 
Смежные вопросы