1
0
mirror of https://github.com/php/doc-ru.git synced 2026-04-26 00:38:06 +02:00
Files
archived-doc-ru/reference/array/sorting.xml
T
Sergey Panteleev daef8df962 Обнуление тега Reviewed (#364)
[skip-lint]
[skip-spellcheck]
2021-11-16 13:03:53 +03:00

170 lines
6.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: d1df62fe77b6cb0676d064e8e63ee2c3304d4260 Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="array.sorting" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Сортировка массивов</title>
<para>
В PHP есть несколько функций для сортировки массивов, на этой странице
даётся их общее описание.
</para>
<para>
Основные различия между функциями:
</para>
<para>
<simplelist>
<member>
В одних функциях массивы (<type>array</type>) сортируются по ключам
элементов, в других по значениям:
<literal>$array['ключ'] = 'значение';</literal>
</member>
<member>
В каких-то функциях связь между ключами и значениями после сортировки
сохраняется, в каких-то нет. Это может приводить к тому, что ключи будут
сбрасываться в числовые значения (0, 1, 2, ...).
</member>
<member>
Различия в порядке сортировки: алфавитный, возрастающий, убывающий,
числовой, естественный, случайный или определённый пользователем
</member>
<member>
Примечание: Все функции сортировки модифицируют переданный массив, а не
возвращают отсортированную копию
</member>
<member>
Если какая-либо из этих функций сортировки оценивает два элемента как равные, они сохраняют свой исходный порядок.
До PHP 8.0.0 их порядок не был определён (сортировка была нестабильной).
</member>
</simplelist>
</para>
<para>
<table>
<title>Свойства функций сортировки</title>
<tgroup cols="5">
<thead>
<row>
<entry>Имя функции</entry>
<entry>Сортирует по</entry>
<entry>Сохраняет связь ключ - значение</entry>
<entry>Порядок сортировки</entry>
<entry>Похожие функции</entry>
</row>
</thead>
<tbody>
<row>
<entry><function>array_multisort</function></entry>
<entry>значению</entry>
<entry>строковые (<type>string</type>) ключи да, числовые (<type>int</type>) - нет</entry>
<entry>первый массив или настройки сортировки</entry>
<entry><function>array_walk</function></entry>
</row>
<row>
<entry><function>asort</function></entry>
<entry>значению</entry>
<entry>да</entry>
<entry>по возрастанию</entry>
<entry><function>arsort</function></entry>
</row>
<row>
<entry><function>arsort</function></entry>
<entry>значению</entry>
<entry>да</entry>
<entry>по убыванию</entry>
<entry><function>asort</function></entry>
</row>
<row>
<entry><function>krsort</function></entry>
<entry>ключу</entry>
<entry>да</entry>
<entry>по убыванию</entry>
<entry><function>ksort</function></entry>
</row>
<row>
<entry><function>ksort</function></entry>
<entry>ключу</entry>
<entry>да</entry>
<entry>по возрастанию</entry>
<entry><function>krsort</function></entry>
</row>
<row>
<entry><function>natcasesort</function></entry>
<entry>значению</entry>
<entry>да</entry>
<entry>естественный, нечувствительный к регистру</entry>
<entry><function>natsort</function></entry>
</row>
<row>
<entry><function>natsort</function></entry>
<entry>значению</entry>
<entry>да</entry>
<entry>естественный</entry>
<entry><function>natcasesort</function></entry>
</row>
<row>
<entry><function>rsort</function></entry>
<entry>значению</entry>
<entry>нет</entry>
<entry>по убыванию</entry>
<entry><function>sort</function></entry>
</row>
<row>
<entry><function>shuffle</function></entry>
<entry>значению</entry>
<entry>нет</entry>
<entry>случайный</entry>
<entry><function>array_rand</function></entry>
</row>
<row>
<entry><function>sort</function></entry>
<entry>значению</entry>
<entry>нет</entry>
<entry>по возрастанию</entry>
<entry><function>rsort</function></entry>
</row>
<row>
<entry><function>uasort</function></entry>
<entry>значению</entry>
<entry>да</entry>
<entry>определяется пользователем</entry>
<entry><function>uksort</function></entry>
</row>
<row>
<entry><function>uksort</function></entry>
<entry>ключу</entry>
<entry>да</entry>
<entry>определяется пользователем</entry>
<entry><function>uasort</function></entry>
</row>
<row>
<entry><function>usort</function></entry>
<entry>значению</entry>
<entry>нет</entry>
<entry>определяется пользователем</entry>
<entry><function>uasort</function></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->