Функция usort в PHP
Функция usort
сортирует массив по значениям используя пользовательскую функцию для сравнения элементов.
Синтаксис
<?php
usort(массив, функция);
Пример
Сортировка массива:
$a = array(
3, 2, 5, 6, 1
);
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
usort($a, 'cmp');
var_dump($a);
// array(5) {
// [0]=>(1)
// [1]=>(2)
// [2]=>(3)
// [3]=>(5)
// [4]=>(6)
// }
Пример
Сортировка двухмерного массива:
$a = array(
1 => array('name' => 'Бананы', 'count' => 16),
2 => array('name' => 'Груши', 'count' => 12),
3 => array('name' => 'Яблоки', 'count' => 1),
4 => array('name' => 'Апельсины', 'count' => 1),
5 => array('name' => 'Мандарины', 'count' => 5),
);
function cmp($a, $b) {
return $a['count'] - $b['count'];
}
usort($a, 'cmp');
var_dump($a);
// Array
// (
// [0] => Array
// (
// [name] => Яблоки
// [count] => 1
// )
// [1] => Array
// (
// [name] => Апельсины
// [count] => 1
// )
// [2] => Array
// (
// [name] => Мандарины
// [count] => 5
// )
// [3] => Array
// (
// [name] => Груши
// [count] => 12
// )
// [4] => Array
// (
// [name] => Бананы
// [count] => 16
// )
// )