php как отсортировать двумерный массив по второму элементу по возрастанию

Есть двумерный массив

$array = array();
  $array[] = array("1" => "какой-то текст1", "2" => 3);
  $array[] = array("1" => "какой-то текст2", "2" => 2);
  $array[] = array("1" => "какой-то текст3", "2" => 1);



Нужно сделать сортировку по возрастанию по значениям из ключа 2.
Такую сортировку двумерного массива в PHP проще всего сделать встроенной функцией usort().
Первым параметров в нее отдаем наш созданный двумерных или многомерный массив.
А второй параметр это функция, в которую нам надо вернуть -1 0 или 1 в зависимости от сравнения двух элементов.
Если мы сравниваем значения в ключе 2, то нам нужно просто сравнить 3 больше 2 или меньше или равно и вернуть это для функции usort(). А она сама уже пересоберет массив и выдаст отсортированный.


usort($array, "cmp"); // название функции cmp

print_r($array); // Вывод

// функцию выносим в свободное место, за пределы if, foreach, while и т.д.

function cmp ($v1, $v2) { // эти переменный наугад взяты

    /* Сравниваем значение по второму в массиве ключе */

    if ($v1[1] == $v2[1]) return 0; // если равны то вернем 0
    return ($v1[1] < $v2[1])? -1: 1; // иначе вернем -1 или 1 если меньше или больше
  }



Ключи указаны 1 - потому что в массивах нумерация с 0.



Оставить свой ответ:

Имя:*
E-Mail:
Вопрос:
Skolko buдет пять пдюс сeмь?
Ответ:*
QQpedia21.ru - cамые интересные вопросы