2016-09-30 3 views
1

как отсортировать этот массив? это будет сортировать по array[x][1]. может ли это сортироваться с использованием usort?сортировка массива нескольких индексов в php

Array 
(
    [0] => Array 
     (
      [0] => 1247 
      [1] => 3 
      [2] => no 
      [3] => no 
     ) 

    [1] => Array 
     (
      [0] => 224 
      [1] => 1 
      [2] => no 
      [3] => no 
     ) 

    [2] => Array 
     (
      [0] => 226 
      [1] => 2 
      [2] => no 
      [3] => no 
     ) 

) 
+0

может быть более расплывчатым ... Как вы хотите отсортировать его? Как вы хотите, чтобы он отображался? Помогите нам помочь вам. – Darren

+0

@Darren Мне хотелось бы отсортировать его по массиву [x] [1] .. – claire

+0

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

ответ

3

Вы находитесь на правильном пути с usort(), вам просто нужно сравнить с элементом 2 й в массиве (, как вам требуется).

usort($array, function($i, $v) { 
    return $i[1] - $v[1]; 
}); 

Примечание: выше $array ваш массив, который вы хотите отсортировать.

который вернет его в правильном порядке (1, 2 затем 3).

Example/Demo

+1

не должно быть 'return $ i [1] - $ v [1];'? – Ghost

+0

@Ghost oh dang хорошее место! Мне слишком рано haha ​​ – Darren

+1

'usort ($ array, function ($ i, $ v) { \t return $ i [1] - $ v [1]; }); p ($ array); ' этот работает для меня! большое спасибо! – claire

Смежные вопросы