Сортировка в php (массивы).


Рассмотрим функции сортировки в php, применяемые к массивам.

ksort (array &array [, int sort_flags]) – сортировка по возрастанию (она же сортировка по алфавиту) элементов массива по ключам, при этом в результирующем массиве сохраняются отношения ключ-значение. Данная функция будет полезна, если нужна сортировка ассоциативного массива.

Пример использования:

1
2
3
4
5
6
7
8
9
<?php
$things = array("d"=>"рубаха", "a"=>"пылесос", "b"=>"тарелка", "c"=>"чашка");
ksort($things);
//теперь сбросим индекс и выведем полученный результат
reset($things);
while (list($key, $val) = each($things)) {
    echo "$key = $val\n";
}
?>

Данная сортировка по ключу даст такой результат:

1
2
3
4
a = пылесос
b = тарелка
c = чашка
d = рубаха

asort() – сортировка массива по значению с сохранением отношений ключ-значение.
Синтаксис:

1
asort(array &array [, int sort_flags]);

Рассмотрим пример:

1
2
3
4
5
6
7
8
9
<?php
$names = array("d"=>"Дима", "a"=>"Сергей", "b"=>"Иван", "c"=>"Алексей");
asort($names);
//теперь сбросим индекс и выведем полученный результат
reset($names);
while (list($key, $val) = each($names)) {
    echo "$key = $val\n";
}
?>

Данная сортировка по ключу даст такой результат:

1
2
3
4
с = Алексей
d = Дима
b = Иван
a = Сергей

sort() – сортировка массива по возрастанию, но без сохранения отношений ключ-значение.

Синтаксис:

1
sort (array &array [, int sort_flags])

Пример использования:

1
2
3
4
5
6
7
8
<?php
$things = array("рубаха","пылесос", "тарелка", "чашка");
sort($things);
reset($things);
while (list($key, $val) = each($things)) {
    echo "things[" . $key . "] = " . $val . "\n";
}
?>

Данная сортировка по возрастанию даст такой результат:

1
2
3
4
things[0] = пылесос
things[1] = рубаха
things[2] = тарелка
things[3] = чашка

arsort() — Отсортировать массив в обратном порядке, сохраняя ключи.

Синтаксис:

1
arsort(array &array [, int sort_flags])

Пример использования:

1
2
3
4
5
6
7
8
<?php
$names = array("d"=>"Дима", "a"=>"Сергей", "b"=>"Иван", "c"=>"Алексей");
arsort($names);
reset($names);
while (list($key, $val) = each($names)) {
    echo "$key = $val\n";
}
?>

Сортировка массива в обратном порядке даст такой результат:

1
2
3
4
a = Сергей
b = Иван
d = Дима
c = Алексей




Другие посты

Категория: PHP-скрипты

Оставить комментарий