HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Функции ksort и krsort </a></li>
1 <ul><li><a>Функции ksort и krsort </a></li>
2 <li><a>Функции sort и rsort</a></li>
2 <li><a>Функции sort и rsort</a></li>
3 <li><a>Функции asort и arsort</a></li>
3 <li><a>Функции asort и arsort</a></li>
4 <li><a>Функция PHP usort</a></li>
4 <li><a>Функция PHP usort</a></li>
5 <li><a>Shuffle</a></li>
5 <li><a>Shuffle</a></li>
6 </ul><p>Одна из типичных задач, с которыми сталкивается разработчик на PHP, - это сортировка массива. В языке программирования PHP можно выполнять сортировку (sorting) массива и по значению, и по ключу, можно делать естественную сортировку, сортировку многомерных и ассоциативных массивов (arrays) и т. д. Для всего этого предусмотрено множество функций. Кратко рассмотрим некоторые из них.</p>
6 </ul><p>Одна из типичных задач, с которыми сталкивается разработчик на PHP, - это сортировка массива. В языке программирования PHP можно выполнять сортировку (sorting) массива и по значению, и по ключу, можно делать естественную сортировку, сортировку многомерных и ассоциативных массивов (arrays) и т. д. Для всего этого предусмотрено множество функций. Кратко рассмотрим некоторые из них.</p>
7 <p>Сортировка позволяет выполнить упорядочение (ordering) данных в какой-нибудь структуре данных, в нашем случае - в массиве. Получение нужного порядка сортировки может быть необходимо для решения задач, поставленных перед разработчиком.</p>
7 <p>Сортировка позволяет выполнить упорядочение (ordering) данных в какой-нибудь структуре данных, в нашем случае - в массиве. Получение нужного порядка сортировки может быть необходимо для решения задач, поставленных перед разработчиком.</p>
8 <h2>Функции ksort и krsort </h2>
8 <h2>Функции ksort и krsort </h2>
9 <p>Вышеописанные функции могут применяться в PHP для выполнения сортировки массива по ключу. Работает это следующим образом:</p>
9 <p>Вышеописанные функции могут применяться в PHP для выполнения сортировки массива по ключу. Работает это следующим образом:</p>
10 <p>Порядок сортировки (ordering) будет следующим:</p>
10 <p>Порядок сортировки (ordering) будет следующим:</p>
11 <p><em> ( </em></p>
11 <p><em> ( </em></p>
12 <p><em> [1] =&gt; Москва </em></p>
12 <p><em> [1] =&gt; Москва </em></p>
13 <p><em> [3] =&gt; Санкт-Петербург </em></p>
13 <p><em> [3] =&gt; Санкт-Петербург </em></p>
14 <p><em> [5] =&gt; Волгоград </em></p>
14 <p><em> [5] =&gt; Волгоград </em></p>
15 <p><em>) </em></p>
15 <p><em>) </em></p>
16 <p><em> ( </em></p>
16 <p><em> ( </em></p>
17 <p><em> [5] =&gt; Волгоград </em></p>
17 <p><em> [5] =&gt; Волгоград </em></p>
18 <p><em> [3] =&gt; Санкт-Петербург </em></p>
18 <p><em> [3] =&gt; Санкт-Петербург </em></p>
19 <p><em> [1] =&gt; Москва </em></p>
19 <p><em> [1] =&gt; Москва </em></p>
20 <p><em>) </em></p>
20 <p><em>) </em></p>
21 <p>Обратите внимание, что элементы массива были отсортированы не по алфавиту,<strong>а по ключу</strong>, в нашем случае - это нужный порядок (order) цифр. Таким образом данные были упорядочены (ordered, sorted) с учетом ключей.</p>
21 <p>Обратите внимание, что элементы массива были отсортированы не по алфавиту,<strong>а по ключу</strong>, в нашем случае - это нужный порядок (order) цифр. Таким образом данные были упорядочены (ordered, sorted) с учетом ключей.</p>
22 <h2>Функции sort и rsort</h2>
22 <h2>Функции sort и rsort</h2>
23 <p>Функция sort (как и resort) сортирует (sorts) заданный массив<strong>по значению</strong>, не сохраняя ключи. Рассмотрим пример:</p>
23 <p>Функция sort (как и resort) сортирует (sorts) заданный массив<strong>по значению</strong>, не сохраняя ключи. Рассмотрим пример:</p>
24 <p>$array = array(</p>
24 <p>$array = array(</p>
25 <p> 3 =&gt; 'Санкт-Петербург',</p>
25 <p> 3 =&gt; 'Санкт-Петербург',</p>
26 <p> 1 =&gt; 'Москва',</p>
26 <p> 1 =&gt; 'Москва',</p>
27 <p> 5 =&gt; 'Волгоград'</p>
27 <p> 5 =&gt; 'Волгоград'</p>
28 <p>);</p>
28 <p>);</p>
29 <p>// Выполняем сортировку PHP массива по возрастанию:</p>
29 <p>// Выполняем сортировку PHP массива по возрастанию:</p>
30 <p>sort($array);</p>
30 <p>sort($array);</p>
31 <p>print_r($array);</p>
31 <p>print_r($array);</p>
32 <p>// Выполняем сортировку PHP массива по убыванию:</p>
32 <p>// Выполняем сортировку PHP массива по убыванию:</p>
33 <p>rsort($array);</p>
33 <p>rsort($array);</p>
34 <p>print_r($array);</p>
34 <p>print_r($array);</p>
35 <p>А теперь любопытно взглянуть на результат сортировки массива в PHP по значению. Код возвращает следующий результат:</p>
35 <p>А теперь любопытно взглянуть на результат сортировки массива в PHP по значению. Код возвращает следующий результат:</p>
36 <p><em>( </em></p>
36 <p><em>( </em></p>
37 <p><em> [0] =&gt; Волгоград </em></p>
37 <p><em> [0] =&gt; Волгоград </em></p>
38 <p><em> [1] =&gt; Москва </em></p>
38 <p><em> [1] =&gt; Москва </em></p>
39 <p><em> [2] =&gt; Санкт-Петербург </em></p>
39 <p><em> [2] =&gt; Санкт-Петербург </em></p>
40 <p><em>) </em></p>
40 <p><em>) </em></p>
41 <p><em>( </em></p>
41 <p><em>( </em></p>
42 <p><em> [0] =&gt; Санкт-Петербург </em></p>
42 <p><em> [0] =&gt; Санкт-Петербург </em></p>
43 <p><em> [1] =&gt; Москва </em></p>
43 <p><em> [1] =&gt; Москва </em></p>
44 <p><em> [2] =&gt; Волгоград </em></p>
44 <p><em> [2] =&gt; Волгоград </em></p>
45 <p><em>) </em></p>
45 <p><em>) </em></p>
46 <p>Мы видим, что<strong>значения были упорядочены в алфавитном порядке</strong>(в прямом, а потом в обратном).</p>
46 <p>Мы видим, что<strong>значения были упорядочены в алфавитном порядке</strong>(в прямом, а потом в обратном).</p>
47 <h2>Функции asort и arsort</h2>
47 <h2>Функции asort и arsort</h2>
48 <p>Если надо, чтобы функция при сортировке (ordering) все-таки сохраняла ключи, пригодится function asort либо arsort.</p>
48 <p>Если надо, чтобы функция при сортировке (ordering) все-таки сохраняла ключи, пригодится function asort либо arsort.</p>
49 <p>$array = array(</p>
49 <p>$array = array(</p>
50 <p> 3 =&gt; 'Санкт-Петербург',</p>
50 <p> 3 =&gt; 'Санкт-Петербург',</p>
51 <p> 1 =&gt; 'Москва',</p>
51 <p> 1 =&gt; 'Москва',</p>
52 <p> 5 =&gt; 'Волгоград'</p>
52 <p> 5 =&gt; 'Волгоград'</p>
53 <p>);</p>
53 <p>);</p>
54 <p>// возрастание:</p>
54 <p>// возрастание:</p>
55 <p>asort($array);</p>
55 <p>asort($array);</p>
56 <p>print_r($array);</p>
56 <p>print_r($array);</p>
57 <p>// убывание:</p>
57 <p>// убывание:</p>
58 <p>arsort($array);</p>
58 <p>arsort($array);</p>
59 <p>print_r($array);</p>
59 <p>print_r($array);</p>
60 <p>Итог следующий:</p>
60 <p>Итог следующий:</p>
61 <p><em>( </em></p>
61 <p><em>( </em></p>
62 <p><em> [5] =&gt; Волгоград </em></p>
62 <p><em> [5] =&gt; Волгоград </em></p>
63 <p><em> [1] =&gt; Москва </em></p>
63 <p><em> [1] =&gt; Москва </em></p>
64 <p><em> [3] =&gt; Санкт-Петербург </em></p>
64 <p><em> [3] =&gt; Санкт-Петербург </em></p>
65 <p><em>) </em></p>
65 <p><em>) </em></p>
66 <p><em>( </em></p>
66 <p><em>( </em></p>
67 <p><em> [3] =&gt; Санкт-Петербург </em></p>
67 <p><em> [3] =&gt; Санкт-Петербург </em></p>
68 <p><em> [1] =&gt; Москва </em></p>
68 <p><em> [1] =&gt; Москва </em></p>
69 <p><em> [5] =&gt; Волгоград </em></p>
69 <p><em> [5] =&gt; Волгоград </em></p>
70 <p><em>) </em></p>
70 <p><em>) </em></p>
71 <p>Мы опять упорядочили данные по значению в прямом и обратном алфавитном порядке. Механизм работы похож на sort, но есть разница, которая заключается в том, что<strong>была сохранена связка "ключ-значение"</strong>. Что это может значить на практике? К примеру, функция подойдет при упорядочении тех же ассоциативных массивов в PHP, то есть в ситуациях, когда<strong>связь в структуре важна</strong>и логична. </p>
71 <p>Мы опять упорядочили данные по значению в прямом и обратном алфавитном порядке. Механизм работы похож на sort, но есть разница, которая заключается в том, что<strong>была сохранена связка "ключ-значение"</strong>. Что это может значить на практике? К примеру, функция подойдет при упорядочении тех же ассоциативных массивов в PHP, то есть в ситуациях, когда<strong>связь в структуре важна</strong>и логична. </p>
72 <h2>Функция PHP usort</h2>
72 <h2>Функция PHP usort</h2>
73 <p>С помощью usort можно отсортировать многомерный массив по необходимому полю. То есть у нас есть возможность выполнить sorting, не сохраняя связку "ключ-значение", но с учетом пользовательской функцией, имя которой можно передать при вызове usort в качестве второго параметра: usort($array, ‘function’).</p>
73 <p>С помощью usort можно отсортировать многомерный массив по необходимому полю. То есть у нас есть возможность выполнить sorting, не сохраняя связку "ключ-значение", но с учетом пользовательской функцией, имя которой можно передать при вызове usort в качестве второго параметра: usort($array, ‘function’).</p>
74 <p>Саму функцию описывают отдельно. Как может выглядеть код:</p>
74 <p>Саму функцию описывают отдельно. Как может выглядеть код:</p>
75 <p>function mySort($a, $b)</p>
75 <p>function mySort($a, $b)</p>
76 <p>{</p>
76 <p>{</p>
77 <p> if ($a['id'] == $b['id']) return 0;</p>
77 <p> if ($a['id'] == $b['id']) return 0;</p>
78 <p> return $a['id'] &gt; $b['id'] ? 1 : -1;</p>
78 <p> return $a['id'] &gt; $b['id'] ? 1 : -1;</p>
79 <p>}</p>
79 <p>}</p>
80 <p>Далее надо будет сделать вызов функции usort($array, ‘mySort’) в нужном месте кода, а в качестве 1-го параметра указать имя переменной массива.</p>
80 <p>Далее надо будет сделать вызов функции usort($array, ‘mySort’) в нужном месте кода, а в качестве 1-го параметра указать имя переменной массива.</p>
81 <h2>Shuffle</h2>
81 <h2>Shuffle</h2>
82 <p>При необходимости можно выполнить и смешивание. Для этого используется функция shuffle. В результате ее работы все значения смешиваются в случайном порядке, причем ключи не сохраняются.</p>
82 <p>При необходимости можно выполнить и смешивание. Для этого используется функция shuffle. В результате ее работы все значения смешиваются в случайном порядке, причем ключи не сохраняются.</p>
83 <p>Давайте вернемся к нашим городам и выполним смешивание два раза. Почему два? Это позволит убедиться в определенной случайности процесса перемешивания. В нашем случае дважды будет получен разный результат:</p>
83 <p>Давайте вернемся к нашим городам и выполним смешивание два раза. Почему два? Это позволит убедиться в определенной случайности процесса перемешивания. В нашем случае дважды будет получен разный результат:</p>
84 <p><em>Источники:</em></p>
84 <p><em>Источники:</em></p>
85 <ul><li><em>https://snipp.ru/php/sort-array;</em></li>
85 <ul><li><em>https://snipp.ru/php/sort-array;</em></li>
86 <li><em>http://cccp-blog.com/koding/sortirovka-massiva-php-razlichnymi-sposobami.</em></li>
86 <li><em>http://cccp-blog.com/koding/sortirovka-massiva-php-razlichnymi-sposobami.</em></li>
87 </ul><p>Хотите знать намного больше? Добро пожаловать на курс!</p>
87 </ul><p>Хотите знать намного больше? Добро пожаловать на курс!</p>
88 <a></a>
88 <a></a>