-
Notifications
You must be signed in to change notification settings - Fork 81
Expand file tree
/
Copy pathsorting.xml
More file actions
169 lines (168 loc) · 6.26 KB
/
sorting.xml
File metadata and controls
169 lines (168 loc) · 6.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<?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
-->