2016-11-08 3 views
0

Здесь у меня есть многомерный массив выглядит следующим образом:Сортировка многомерного массива по значению в PHP

Array 
(
    [1] => Array 
     (
      [0] => 100 
      [1] => a 
     ) 

    [2] => Array 
     (
      [0] => 1000 
      [1] => b 
     ) 

    [3] => Array 
     (
      [0] => 50 
      [1] => c 
     ) 

    [4] => Array 
     (
      [0] => 500 
      [1] => d 
     ) 

    [5] => Array 
     (
      [0] => 1500 
      [1] => e 
     ) 

) 

Все, что я хочу сделать, это сортировка массива на основе [0] значение, так что это будет выглядеть это:

Array 
(
    [1] => Array 
     (
      [0] => 1500 
      [1] => e 
     ) 

    [2] => Array 
     (
      [0] => 1000 
      [1] => b 
     ) 

    [3] => Array 
     (
      [0] => 500 
      [1] => d 
     ) 

    [4] => Array 
     (
      [0] => 100 
      [1] => a 
     ) 

    [5] => Array 
     (
      [0] => 50 
      [1] => c 
     ) 

) 

У вас есть предложения, что я должен делать? Заранее спасибо

+0

Вы можете использовать PHP функцию array_multisort() – Kumar

+0

Вы должны использовать [ array_multisort] (http://php.net/manual/en/function.array-multisort.php) функция – Dekel

+0

Можете ли вы, ребята, привести пример? Я уже пытаюсь, но он сортирует индекс [0], а не индекс [1] – Berlian

ответ

1

Проще всего использовать определенную пользователем функцию для сортировки:

<?php 
$values = [ 
    1 => [100, 'a'], 
    2 => [1000, 'b'], 
    3 => [50, 'c'], 
    4 => [500, 'd'], 
    5 => [1500, 'e'] 
]; 

usort($values, function($a, $b){ 
    return $a[0] < $b[0]; 
}); 

var_dump($values); 

Выход очевидно:

array(5) { 
    [0] => 
    array(2) { 
    [0] => 
    int(1500) 
    [1] => 
    string(1) "e" 
    } 
    [1] => 
    array(2) { 
    [0] => 
    int(1000) 
    [1] => 
    string(1) "b" 
    } 
    [2] => 
    array(2) { 
    [0] => 
    int(500) 
    [1] => 
    string(1) "d" 
    } 
    [3] => 
    array(2) { 
    [0] => 
    int(100) 
    [1] => 
    string(1) "a" 
    } 
    [4] => 
    array(2) { 
    [0] => 
    int(50) 
    [1] => 
    string(1) "c" 
    } 
} 
Смежные вопросы