Files
php-doc-ru/reference/array/sorting.xml
Sergey Panteleev daef8df962 Обнуление тега Reviewed (#364)
[skip-lint]
[skip-spellcheck]
2021-11-16 13:03:53 +03:00

170 lines
6.3 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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
-->