HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>17 июн 2022</li>
2 <ul><li>17 июн 2022</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Становимся настоящими ниндзя в сортировке массивов. Вместо оружия - встроенные функции PHP, быстрые и точные, как катана.</p>
4 </ul><p>Становимся настоящими ниндзя в сортировке массивов. Вместо оружия - встроенные функции PHP, быстрые и точные, как катана.</p>
5 <p>Иллюстрация: Polina Vari для Skillbox Media</p>
5 <p>Иллюстрация: Polina Vari для Skillbox Media</p>
6 <p>В PHP массивом называют структуру данных, которая позволяет хранить упорядоченный набор значений по принципу ключ =&gt; значение. И количество инструментов для работы с массивами тут впечатляет: для одной только сортировки существует 13 встроенных функций! В этой статье мы покажем, как ими пользоваться, чтобы получать информацию в нужном виде.</p>
6 <p>В PHP массивом называют структуру данных, которая позволяет хранить упорядоченный набор значений по принципу ключ =&gt; значение. И количество инструментов для работы с массивами тут впечатляет: для одной только сортировки существует 13 встроенных функций! В этой статье мы покажем, как ими пользоваться, чтобы получать информацию в нужном виде.</p>
7 <p>Все функции PHP для сортировки массивов "конструируются" из четырёх основных критериев:</p>
7 <p>Все функции PHP для сортировки массивов "конструируются" из четырёх основных критериев:</p>
8 <ul><li>вид сортировки - по ключу или значениям;</li>
8 <ul><li>вид сортировки - по ключу или значениям;</li>
9 <li>порядок сортировки - восходящий, нисходящий, естественный, пользовательский и прочие;</li>
9 <li>порядок сортировки - восходящий, нисходящий, естественный, пользовательский и прочие;</li>
10 <li>способ обработки ключей - с сохранением связи или нет;</li>
10 <li>способ обработки ключей - с сохранением связи или нет;</li>
11 <li>наличие уточняющих опций - в семи из этих функций можно указать предпочтительный способ сортировки и дополнительные параметры ("флаги").</li>
11 <li>наличие уточняющих опций - в семи из этих функций можно указать предпочтительный способ сортировки и дополнительные параметры ("флаги").</li>
12 </ul><p>Вот функции, которые позволяют это сделать:</p>
12 </ul><p>Вот функции, которые позволяют это сделать:</p>
13 Список функций сортировки массивов в PHP<em>Изображение: Евгений Колесников для Skillbox Media</em><p>У каждой из функций есть название, указывающее на вид сортировки и завершающееся круглыми скобками. Эти названия на первый взгляд кажутся не особо говорящими, поэтому для начала лучше выбирать функцию под конкретную задачу, сверяясь с табличкой на официальном сайте. При этом легко запомнить, что функции с буквой "k" сортируют массивы по ключам.</p>
13 Список функций сортировки массивов в PHP<em>Изображение: Евгений Колесников для Skillbox Media</em><p>У каждой из функций есть название, указывающее на вид сортировки и завершающееся круглыми скобками. Эти названия на первый взгляд кажутся не особо говорящими, поэтому для начала лучше выбирать функцию под конкретную задачу, сверяясь с табличкой на официальном сайте. При этом легко запомнить, что функции с буквой "k" сортируют массивы по ключам.</p>
14 <p>В зависимости от выбранной функции внутри скобок указывается массив или несколько массивов для сортировки, а затем могут идти опции (флаги):</p>
14 <p>В зависимости от выбранной функции внутри скобок указывается массив или несколько массивов для сортировки, а затем могут идти опции (флаги):</p>
15 <ul><li>SORT_REGULAR - сравнивать элементы в нормальном порядке, не меняя типов;</li>
15 <ul><li>SORT_REGULAR - сравнивать элементы в нормальном порядке, не меняя типов;</li>
16 <li>SORT_NUMERIC - сравнивать элементы как числа;</li>
16 <li>SORT_NUMERIC - сравнивать элементы как числа;</li>
17 <li>SORT_STRING - сравнивать элементы как строки;</li>
17 <li>SORT_STRING - сравнивать элементы как строки;</li>
18 <li>SORT_LOCALE_STRING - сравнивать элементы как строки, руководствуясь текущим местонахождением, то есть локалью <a>(Locale</a>);</li>
18 <li>SORT_LOCALE_STRING - сравнивать элементы как строки, руководствуясь текущим местонахождением, то есть локалью <a>(Locale</a>);</li>
19 <li>SORT_NATURAL - сравнивать элементы как строки в естественном порядке;</li>
19 <li>SORT_NATURAL - сравнивать элементы как строки в естественном порядке;</li>
20 <li>SORT_FLAG_CASE - можно объединить с SORT_STRING или SORT_NATURAL, чтобы сделать сортировку нечувствительной к регистру.</li>
20 <li>SORT_FLAG_CASE - можно объединить с SORT_STRING или SORT_NATURAL, чтобы сделать сортировку нечувствительной к регистру.</li>
21 </ul><p>Давайте попробуем в действии отсортировать массивы разными способами. В этом нам помогут редактор кода<a>Notepad++</a>и среда разработки<a>XAMPP</a>для запуска PHP-кода в браузере.</p>
21 </ul><p>Давайте попробуем в действии отсортировать массивы разными способами. В этом нам помогут редактор кода<a>Notepad++</a>и среда разработки<a>XAMPP</a>для запуска PHP-кода в браузере.</p>
22 <p>Во всех примерах будем сначала выводить исходный массив, а затем его же после сортировки (помните, что сортировка меняет массив, то есть её результат сохраняется). Для удобства чтения будем осуществлять вывод с помощью привычной функции<a>echo</a>в связке с <a>implode()</a>/<a>print_r()</a>или циклом<a>foreach</a>.</p>
22 <p>Во всех примерах будем сначала выводить исходный массив, а затем его же после сортировки (помните, что сортировка меняет массив, то есть её результат сохраняется). Для удобства чтения будем осуществлять вывод с помощью привычной функции<a>echo</a>в связке с <a>implode()</a>/<a>print_r()</a>или циклом<a>foreach</a>.</p>
23 <p>Также для красоты будем сопровождать результаты подписями (HTML-заголовки<a>&lt;h2&gt; и &lt;h3&gt;</a>) и переносом строк (HTML-элемент<a>&lt;br&gt;</a>).</p>
23 <p>Также для красоты будем сопровождать результаты подписями (HTML-заголовки<a>&lt;h2&gt; и &lt;h3&gt;</a>) и переносом строк (HTML-элемент<a>&lt;br&gt;</a>).</p>
24 &lt;?php echo "&lt;h1&gt;СОРТИРОВКА МАССИВОВ&lt;/h1&gt;";Начало нашего кода<p>Создадим массив чисел и отсортируем его в порядке убывания, от большего значения к меньшему. Возьмём самый простой пример: массив зарплат в рублях:</p>
24 &lt;?php echo "&lt;h1&gt;СОРТИРОВКА МАССИВОВ&lt;/h1&gt;";Начало нашего кода<p>Создадим массив чисел и отсортируем его в порядке убывания, от большего значения к меньшему. Возьмём самый простой пример: массив зарплат в рублях:</p>
25 $salaries = array(45000, 65000, 35000, 75000, 55000);<p>Так он выглядит с выводом результата.</p>
25 $salaries = array(45000, 65000, 35000, 75000, 55000);<p>Так он выглядит с выводом результата.</p>
26 echo "&lt;h2&gt;Сортировка вакансий по зарплатам&lt;/h2&gt;"; $salaries = array(45000, 65000, 35000, 75000, 55000); echo "&lt;h3&gt;Исходный массив вакансий по зарплатам целиком, до сортировки&lt;/h3&gt;"; print_r($salaries); echo "&lt;h3&gt;Массив вакансий по зарплатам до сортировки -- только значения (исходный порядок)&lt;/h3&gt;"; echo implode(", ", $salaries) . "&lt;br&gt;"; Код исходного массива зарплат с выводом результата<p>Исходный массив вакансий по зарплатам целиком, до сортировки:</p>
26 echo "&lt;h2&gt;Сортировка вакансий по зарплатам&lt;/h2&gt;"; $salaries = array(45000, 65000, 35000, 75000, 55000); echo "&lt;h3&gt;Исходный массив вакансий по зарплатам целиком, до сортировки&lt;/h3&gt;"; print_r($salaries); echo "&lt;h3&gt;Массив вакансий по зарплатам до сортировки -- только значения (исходный порядок)&lt;/h3&gt;"; echo implode(", ", $salaries) . "&lt;br&gt;"; Код исходного массива зарплат с выводом результата<p>Исходный массив вакансий по зарплатам целиком, до сортировки:</p>
27 Array ( [0] =&gt; 45000 [1] =&gt; 65000 [2] =&gt; 35000 [3] =&gt; 75000 [4] =&gt; 55000 )<p>Массив вакансий по зарплатам до сортировки - только значения (исходный порядок):</p>
27 Array ( [0] =&gt; 45000 [1] =&gt; 65000 [2] =&gt; 35000 [3] =&gt; 75000 [4] =&gt; 55000 )<p>Массив вакансий по зарплатам до сортировки - только значения (исходный порядок):</p>
28 45000, 65000, 35000, 75000, 55000<p>Как видим, сейчас зарплаты внутри массива расположены в произвольном порядке, а нам бы хотелось сначала увидеть самые выгодные вакансии. Значит, надо найти в таблице такой метод, который умеет сортировать значения в порядке убывания - нам подойдёт <a>rsort()</a>.</p>
28 45000, 65000, 35000, 75000, 55000<p>Как видим, сейчас зарплаты внутри массива расположены в произвольном порядке, а нам бы хотелось сначала увидеть самые выгодные вакансии. Значит, надо найти в таблице такой метод, который умеет сортировать значения в порядке убывания - нам подойдёт <a>rsort()</a>.</p>
29 rsort($array, FLAGS);<p>Объяснение:</p>
29 rsort($array, FLAGS);<p>Объяснение:</p>
30 <ul><li>rsort() - название функции, в скобках указываются параметры;</li>
30 <ul><li>rsort() - название функции, в скобках указываются параметры;</li>
31 <li>$array - массив для сортировки;</li>
31 <li>$array - массив для сортировки;</li>
32 <li>на месте опции FLAGS можно указать другие правила сортировки массива (флаги).</li>
32 <li>на месте опции FLAGS можно указать другие правила сортировки массива (флаги).</li>
33 </ul><p>А теперь попробуем нашу функцию в деле. На первом шаге передадим в неё массив с зарплатами - $salaries.</p>
33 </ul><p>А теперь попробуем нашу функцию в деле. На первом шаге передадим в неё массив с зарплатами - $salaries.</p>
34 rsort($salaries);<p>Далее прописываем вывод результата:</p>
34 rsort($salaries);<p>Далее прописываем вывод результата:</p>
35 echo "&lt;h3&gt;Массив вакансий по зарплатам после сортировки через rsort() (по значению, по убыванию)&lt;/h3&gt;"; echo implode(", ", $salaries) . "&lt;br&gt;";Код для сортировки массива зарплат<p>Вот что у нас получилось на выходе:</p>
35 echo "&lt;h3&gt;Массив вакансий по зарплатам после сортировки через rsort() (по значению, по убыванию)&lt;/h3&gt;"; echo implode(", ", $salaries) . "&lt;br&gt;";Код для сортировки массива зарплат<p>Вот что у нас получилось на выходе:</p>
36 75000, 65000, 55000, 45000, 35000<p>Теперь возьмёмся за массив текстовых значений.</p>
36 75000, 65000, 55000, 45000, 35000<p>Теперь возьмёмся за массив текстовых значений.</p>
37 <p>По <a>данным</a>Большой российской энциклопедии, в мире насчитывается более двухсот видов сов. Было бы неплохо создать про них сайт, чтобы каждый мог узнать о совах побольше! Начнём с создания "массива сов", руководствуясь<a>книгой</a>Ю. Б. Пукинского "Жизнь сов".</p>
37 <p>По <a>данным</a>Большой российской энциклопедии, в мире насчитывается более двухсот видов сов. Было бы неплохо создать про них сайт, чтобы каждый мог узнать о совах побольше! Начнём с создания "массива сов", руководствуясь<a>книгой</a>Ю. Б. Пукинского "Жизнь сов".</p>
38 echo "&lt;h2&gt;Сортируем сов&lt;/h2&gt;"; $owls = array( "tytonidae" =&gt; "Сипухи", "tyto" =&gt; "Сипухи", "strigidae" =&gt; "Настоящие совы", "otus" =&gt; "Совки", "bubo" =&gt; "Филины", "ketupa" =&gt; "Рыбные совы", "nyctea" =&gt; "Белые совы", "surnia" =&gt; "Ястребиные совы", "glaucidium" =&gt; "Сычики", "ninox" =&gt; "Иглоногие совы", "athene" =&gt; "Сычи", "strix" =&gt; "Неясыти", "asfo" =&gt; "Ушастые совы", "aegolius" =&gt; "Мохноногие сычи" ); Код исходного массива видов совecho "&lt;h3&gt;Исходный массив названий видов сов целиком, до сортировки&lt;/h3&gt;"; print_r($owls); echo "&lt;h3&gt;Названия видов сов до сортировки -- только значения (исходный порядок)&lt;/h3&gt;"; echo implode(", ", $owls) . "&lt;br&gt;"; Код вывода исходного массива видов сов<p>Исходный массив названий видов сов целиком, до сортировки:</p>
38 echo "&lt;h2&gt;Сортируем сов&lt;/h2&gt;"; $owls = array( "tytonidae" =&gt; "Сипухи", "tyto" =&gt; "Сипухи", "strigidae" =&gt; "Настоящие совы", "otus" =&gt; "Совки", "bubo" =&gt; "Филины", "ketupa" =&gt; "Рыбные совы", "nyctea" =&gt; "Белые совы", "surnia" =&gt; "Ястребиные совы", "glaucidium" =&gt; "Сычики", "ninox" =&gt; "Иглоногие совы", "athene" =&gt; "Сычи", "strix" =&gt; "Неясыти", "asfo" =&gt; "Ушастые совы", "aegolius" =&gt; "Мохноногие сычи" ); Код исходного массива видов совecho "&lt;h3&gt;Исходный массив названий видов сов целиком, до сортировки&lt;/h3&gt;"; print_r($owls); echo "&lt;h3&gt;Названия видов сов до сортировки -- только значения (исходный порядок)&lt;/h3&gt;"; echo implode(", ", $owls) . "&lt;br&gt;"; Код вывода исходного массива видов сов<p>Исходный массив названий видов сов целиком, до сортировки:</p>
39 Array ( [tytonidae] =&gt; Сипухи [tyto] =&gt; Сипухи [strigidae] =&gt; Настоящие совы [otus] =&gt; Совки [bubo] =&gt; Филины [ketupa] =&gt; Рыбные совы [nyctea] =&gt; Белые совы [surnia] =&gt; Ястребиные совы [glaucidium] =&gt; Сычики [ninox] =&gt; Иглоногие совы [athene] =&gt; Сычи [strix] =&gt; Неясыти [asfo] =&gt; Ушастые совы [aegolius] =&gt; Мохноногие сычи )<p>Названия видов сов до сортировки - только значения (исходный порядок):</p>
39 Array ( [tytonidae] =&gt; Сипухи [tyto] =&gt; Сипухи [strigidae] =&gt; Настоящие совы [otus] =&gt; Совки [bubo] =&gt; Филины [ketupa] =&gt; Рыбные совы [nyctea] =&gt; Белые совы [surnia] =&gt; Ястребиные совы [glaucidium] =&gt; Сычики [ninox] =&gt; Иглоногие совы [athene] =&gt; Сычи [strix] =&gt; Неясыти [asfo] =&gt; Ушастые совы [aegolius] =&gt; Мохноногие сычи )<p>Названия видов сов до сортировки - только значения (исходный порядок):</p>
40 Сипухи, Сипухи, Настоящие совы, Совки, Филины, Рыбные совы, Белые совы, Ястребиные совы, Сычики, Иглоногие совы, Сычи, Неясыти, Ушастые совы, Мохноногие сычи<p>В данном случае в роли ключей ассоциативного массива у нас выступают латинские названия видов, а значениями являются русские названия.</p>
40 Сипухи, Сипухи, Настоящие совы, Совки, Филины, Рыбные совы, Белые совы, Ястребиные совы, Сычики, Иглоногие совы, Сычи, Неясыти, Ушастые совы, Мохноногие сычи<p>В данном случае в роли ключей ассоциативного массива у нас выступают латинские названия видов, а значениями являются русские названия.</p>
41 <p>В зависимости от задачи нам может понадобиться как латинское, так и русское название. Кроме этого, было бы интересно иметь возможность получать информацию о случайно выбранной сове, а ещё - представлять текстовые значения в алфавитном порядке.</p>
41 <p>В зависимости от задачи нам может понадобиться как латинское, так и русское название. Кроме этого, было бы интересно иметь возможность получать информацию о случайно выбранной сове, а ещё - представлять текстовые значения в алфавитном порядке.</p>
42 <p>Отсюда вытекает необходимость использования сразу трёх различных функций сортировки:</p>
42 <p>Отсюда вытекает необходимость использования сразу трёх различных функций сортировки:</p>
43 <ul><li><a>ksort()</a>для сортировки по ключам (латинским названиям) по алфавиту;</li>
43 <ul><li><a>ksort()</a>для сортировки по ключам (латинским названиям) по алфавиту;</li>
44 <li><a>asort()</a>для сортировки по значениям (русским названиям), также по алфавиту;</li>
44 <li><a>asort()</a>для сортировки по значениям (русским названиям), также по алфавиту;</li>
45 <li><a>shuffle()</a>для получения случайных русских названий сов.</li>
45 <li><a>shuffle()</a>для получения случайных русских названий сов.</li>
46 </ul><p>Синтаксис ksort() и asort() такой же, как и в предыдущем примере у rsort(), а с shuffle() всё ещё проще - она принимает только название массива.</p>
46 </ul><p>Синтаксис ksort() и asort() такой же, как и в предыдущем примере у rsort(), а с shuffle() всё ещё проще - она принимает только название массива.</p>
47 <p>Посмотрим на функции в деле:</p>
47 <p>Посмотрим на функции в деле:</p>
48 ksort($owls); echo"&lt;h3&gt;Названия видов сов после сортировки через ksort() (по ключу, по алфавиту, по возрастанию)&lt;/h3&gt;"; print_r(array_keys($owls)); asort($owls); echo "&lt;h3&gt;Названия видов сов после сортировки через asort() (по значению, по алфавиту, по возрастанию)&lt;/h3&gt;"; echo implode(", ", $owls) . "&lt;br&gt;"; shuffle($owls); echo "&lt;h3&gt;Названия видов сов после сортировки через shuffle() (по значению, случайный порядок)&lt;/h3&gt;"; echo implode(", ", $owls) . "&lt;br&gt;"; Код для сортировки массива видов сов<p>Названия видов сов после сортировки через ksort() (по ключу, по алфавиту, по возрастанию):</p>
48 ksort($owls); echo"&lt;h3&gt;Названия видов сов после сортировки через ksort() (по ключу, по алфавиту, по возрастанию)&lt;/h3&gt;"; print_r(array_keys($owls)); asort($owls); echo "&lt;h3&gt;Названия видов сов после сортировки через asort() (по значению, по алфавиту, по возрастанию)&lt;/h3&gt;"; echo implode(", ", $owls) . "&lt;br&gt;"; shuffle($owls); echo "&lt;h3&gt;Названия видов сов после сортировки через shuffle() (по значению, случайный порядок)&lt;/h3&gt;"; echo implode(", ", $owls) . "&lt;br&gt;"; Код для сортировки массива видов сов<p>Названия видов сов после сортировки через ksort() (по ключу, по алфавиту, по возрастанию):</p>
49 Array ( [0] =&gt; aegolius [1] =&gt; asfo [2] =&gt; athene [3] =&gt; bubo [4] =&gt; glaucidium [5] =&gt; ketupa [6] =&gt; ninox [7] =&gt; nyctea [8] =&gt; otus [9] =&gt; strigidae [10] =&gt; strix [11] =&gt; surnia [12] =&gt; tyto [13] =&gt; tytonidae )<p>Названия видов сов после сортировки через asort() (по значению, по алфавиту, по возрастанию):</p>
49 Array ( [0] =&gt; aegolius [1] =&gt; asfo [2] =&gt; athene [3] =&gt; bubo [4] =&gt; glaucidium [5] =&gt; ketupa [6] =&gt; ninox [7] =&gt; nyctea [8] =&gt; otus [9] =&gt; strigidae [10] =&gt; strix [11] =&gt; surnia [12] =&gt; tyto [13] =&gt; tytonidae )<p>Названия видов сов после сортировки через asort() (по значению, по алфавиту, по возрастанию):</p>
50 Белые совы, Иглоногие совы, Мохноногие сычи, Настоящие совы, Неясыти, Рыбные совы, Сипухи, Сипухи, Совки, Сычи, Сычики, Ушастые совы, Филины, Ястребиные совы<p>Названия видов сов после сортировки через shuffle() (по значению, случайный порядок):</p>
50 Белые совы, Иглоногие совы, Мохноногие сычи, Настоящие совы, Неясыти, Рыбные совы, Сипухи, Сипухи, Совки, Сычи, Сычики, Ушастые совы, Филины, Ястребиные совы<p>Названия видов сов после сортировки через shuffle() (по значению, случайный порядок):</p>
51 Сипухи, Рыбные совы, Белые совы, Сычики, Совки, Сипухи, Мохноногие сычи, Ястребиные совы, Ушастые совы, Филины, Неясыти, Настоящие совы, Иглоногие совы, Сычи<p>Совы встали на свои места, а мы двигаемся дальше - к сортировке, имитирующей человеческую логику.</p>
51 Сипухи, Рыбные совы, Белые совы, Сычики, Совки, Сипухи, Мохноногие сычи, Ястребиные совы, Ушастые совы, Филины, Неясыти, Настоящие совы, Иглоногие совы, Сычи<p>Совы встали на свои места, а мы двигаемся дальше - к сортировке, имитирующей человеческую логику.</p>
52 <p>Предположим, у нас есть список подписчиков нашей группы в одном из возможных форматов - ссылками с id вида vk.com/idXXX.</p>
52 <p>Предположим, у нас есть список подписчиков нашей группы в одном из возможных форматов - ссылками с id вида vk.com/idXXX.</p>
53 echo "&lt;h2&gt;Сортируем ссылки на страницы во "Вконтакте" через natsort()&lt;/h2&gt;"; $pages = array("vk.com/id30000", "vk.com/id10000", "vk.com/id20000"); echo "&lt;h3&gt;Исходный массив ссылок на страницы во "Вконтакте", до сортировки&lt;/h3&gt;"; print_r($pages); Код исходного массива страниц во "Вконтакте" с выводом результата<p>Исходный массив ссылок на страницы во "Вконтакте", до сортировки:</p>
53 echo "&lt;h2&gt;Сортируем ссылки на страницы во "Вконтакте" через natsort()&lt;/h2&gt;"; $pages = array("vk.com/id30000", "vk.com/id10000", "vk.com/id20000"); echo "&lt;h3&gt;Исходный массив ссылок на страницы во "Вконтакте", до сортировки&lt;/h3&gt;"; print_r($pages); Код исходного массива страниц во "Вконтакте" с выводом результата<p>Исходный массив ссылок на страницы во "Вконтакте", до сортировки:</p>
54 Array ( [0] =&gt; vk.com/id30000 [1] =&gt; vk.com/id10000 [2] =&gt; vk.com/id20000 )<p>Было бы удобно расположить записи в порядке возрастания id, но есть нюанс: элементы массива являются строковыми значениями. Вот что показывает проверка типов:</p>
54 Array ( [0] =&gt; vk.com/id30000 [1] =&gt; vk.com/id10000 [2] =&gt; vk.com/id20000 )<p>Было бы удобно расположить записи в порядке возрастания id, но есть нюанс: элементы массива являются строковыми значениями. Вот что показывает проверка типов:</p>
55 echo "&lt;h3&gt;Проверка типа данных в массиве ссылок на страницы во "Вконтакте"&lt;/h3&gt;"; foreach ($pages as $page) { echo gettype($page) . "&lt;br&gt;"; };<p>Вывод результата после проверки типа данных в массиве ссылок на страницы во "Вконтакте":</p>
55 echo "&lt;h3&gt;Проверка типа данных в массиве ссылок на страницы во "Вконтакте"&lt;/h3&gt;"; foreach ($pages as $page) { echo gettype($page) . "&lt;br&gt;"; };<p>Вывод результата после проверки типа данных в массиве ссылок на страницы во "Вконтакте":</p>
56 string string string<p>Чтобы решить задачу, воспользуемся функцией естественной сортировки<a>natsort()</a>.</p>
56 string string string<p>Чтобы решить задачу, воспользуемся функцией естественной сортировки<a>natsort()</a>.</p>
57 natsort($array);<p>Объяснение:</p>
57 natsort($array);<p>Объяснение:</p>
58 <ul><li>natsort() - название функции, в скобках указывается единственный параметр;</li>
58 <ul><li>natsort() - название функции, в скобках указывается единственный параметр;</li>
59 <li>$array - массив, который нужно отсортировать естественным способом (как это бы сделал человек).</li>
59 <li>$array - массив, который нужно отсортировать естественным способом (как это бы сделал человек).</li>
60 </ul><p>Посмотрим на функцию в деле:</p>
60 </ul><p>Посмотрим на функцию в деле:</p>
61 natsort($pages); echo "&lt;h3&gt;Массив ссылок на страницы во "Вконтакте" после естественной сортировки через natsort() (по значению, по возрастанию)&lt;/h3&gt;"; echo implode(", ", $pages) . "&lt;br&gt;";<p>Массив ссылок на страницы во "Вконтакте" после естественной сортировки через natsort() (по значению, по возрастанию):</p>
61 natsort($pages); echo "&lt;h3&gt;Массив ссылок на страницы во "Вконтакте" после естественной сортировки через natsort() (по значению, по возрастанию)&lt;/h3&gt;"; echo implode(", ", $pages) . "&lt;br&gt;";<p>Массив ссылок на страницы во "Вконтакте" после естественной сортировки через natsort() (по значению, по возрастанию):</p>
62 vk.com/id10000, vk.com/id20000, vk.com/id30000<p>Теперь страницы отсортированы в удобном для работы формате.</p>
62 vk.com/id10000, vk.com/id20000, vk.com/id30000<p>Теперь страницы отсортированы в удобном для работы формате.</p>
63 <p>Для примера возьмём двумерный массив, состоящий, в свою очередь, из двух массивов: марок автомобильного топлива и цен на него некоторое время назад.</p>
63 <p>Для примера возьмём двумерный массив, состоящий, в свою очередь, из двух массивов: марок автомобильного топлива и цен на него некоторое время назад.</p>
64 echo "&lt;h2&gt;Сортируем цены на бензин и дизельное топливо (в рублях) через array_multisort()&lt;/h2&gt;"; $petrol = array( array("52,75", "61,95", "54,01", "47,60"), array("АИ-95", "АИ-98", "ДТ", "АИ-92") ); echo "&lt;h3&gt;Марки топлива и цены на него до сортировки(исходный порядок)&lt;/h3&gt;"; print_r(array_values($petrol)); Код исходного массива цен на топливо с выводом результата<p>Марки топлива и цены на него до сортировки (исходный порядок):</p>
64 echo "&lt;h2&gt;Сортируем цены на бензин и дизельное топливо (в рублях) через array_multisort()&lt;/h2&gt;"; $petrol = array( array("52,75", "61,95", "54,01", "47,60"), array("АИ-95", "АИ-98", "ДТ", "АИ-92") ); echo "&lt;h3&gt;Марки топлива и цены на него до сортировки(исходный порядок)&lt;/h3&gt;"; print_r(array_values($petrol)); Код исходного массива цен на топливо с выводом результата<p>Марки топлива и цены на него до сортировки (исходный порядок):</p>
65 Array ( [0] =&gt; Array ( [0] =&gt; 52,75 [1] =&gt; 61,95 [2] =&gt; 54,01 [3] =&gt; 47,60 ) [1] =&gt; Array ( [0] =&gt; АИ-95 [1] =&gt; АИ-98 [2] =&gt; ДТ [3] =&gt; АИ-92 ) )<p>Сейчас здесь есть взаимное соответствие (например, АИ-92 стоит 47,60), но сами значения не отсортированы в каком-либо порядке. Попробуем с помощью функции сортировки <a>array_multisort()</a>вывести для пользователя список ценников, отсортированный по возрастанию, где сначала идёт самый дешёвый бензин.</p>
65 Array ( [0] =&gt; Array ( [0] =&gt; 52,75 [1] =&gt; 61,95 [2] =&gt; 54,01 [3] =&gt; 47,60 ) [1] =&gt; Array ( [0] =&gt; АИ-95 [1] =&gt; АИ-98 [2] =&gt; ДТ [3] =&gt; АИ-92 ) )<p>Сейчас здесь есть взаимное соответствие (например, АИ-92 стоит 47,60), но сами значения не отсортированы в каком-либо порядке. Попробуем с помощью функции сортировки <a>array_multisort()</a>вывести для пользователя список ценников, отсортированный по возрастанию, где сначала идёт самый дешёвый бензин.</p>
66 <p>Функция array_multisort() предназначена как раз для сортировки многомерных массивов. Вот её синтаксис:</p>
66 <p>Функция array_multisort() предназначена как раз для сортировки многомерных массивов. Вот её синтаксис:</p>
67 array_multisort($array1, $array1_sort_order, $array1_sort_flags, $other);<p>Объяснение:</p>
67 array_multisort($array1, $array1_sort_order, $array1_sort_flags, $other);<p>Объяснение:</p>
68 <ul><li>array_multisort() - название функции, в скобках указываются параметры;</li>
68 <ul><li>array_multisort() - название функции, в скобках указываются параметры;</li>
69 <li>$array1 - первый массив для сортировки;</li>
69 <li>$array1 - первый массив для сортировки;</li>
70 <li>на месте опции $array1_sort_order можно указать порядок сортировки первого массива (можно не указывать);</li>
70 <li>на месте опции $array1_sort_order можно указать порядок сортировки первого массива (можно не указывать);</li>
71 <li>на месте опции $array1_sort_flags можно указать другие правила сортировки первого массива (флаги) в дополнение к предыдущей опции;</li>
71 <li>на месте опции $array1_sort_flags можно указать другие правила сортировки первого массива (флаги) в дополнение к предыдущей опции;</li>
72 <li>на месте $other можно вписать ещё один массив $array2 с опциями или без (и так далее).</li>
72 <li>на месте $other можно вписать ещё один массив $array2 с опциями или без (и так далее).</li>
73 </ul><p>Применим функцию в деле:</p>
73 </ul><p>Применим функцию в деле:</p>
74 echo("&lt;h3&gt;Сортировка марок топлива и цен через array_multisort() (по возрастанию)&lt;/h3&gt;"); array_multisort($petrol[0], $petrol[1]); echo implode(" -- ", $petrol[1]) . "&lt;br&gt;"; echo implode(" -- ", $petrol[0]) . "&lt;br&gt;";<p>Вывод отсортированного массива марок топлива и цен через array_multisort() (по возрастанию):</p>
74 echo("&lt;h3&gt;Сортировка марок топлива и цен через array_multisort() (по возрастанию)&lt;/h3&gt;"); array_multisort($petrol[0], $petrol[1]); echo implode(" -- ", $petrol[1]) . "&lt;br&gt;"; echo implode(" -- ", $petrol[0]) . "&lt;br&gt;";<p>Вывод отсортированного массива марок топлива и цен через array_multisort() (по возрастанию):</p>
75 АИ-92 -- АИ-95 -- ДТ -- АИ-98 47,60--52,75--54,01--61,95<p>Теперь марки топлива расположены по возрастанию цены, а мы возьмём ещё более интересный пример - сортировку по кастомным правилам.</p>
75 АИ-92 -- АИ-95 -- ДТ -- АИ-98 47,60--52,75--54,01--61,95<p>Теперь марки топлива расположены по возрастанию цены, а мы возьмём ещё более интересный пример - сортировку по кастомным правилам.</p>
76 <p>Предположим, у нашей компании есть корпоративный портал, где можно посмотреть информацию о коллегах. Пусть у нас в массиве будет шесть коллег. База содержит Ф. И. О., внутренний ID, должность и возраст, а карточка каждого сотрудника является отдельным массивом многомерного массива:</p>
76 <p>Предположим, у нашей компании есть корпоративный портал, где можно посмотреть информацию о коллегах. Пусть у нас в массиве будет шесть коллег. База содержит Ф. И. О., внутренний ID, должность и возраст, а карточка каждого сотрудника является отдельным массивом многомерного массива:</p>
77 echo "&lt;h2&gt;Сортируем сотрудников компании&lt;/h2&gt;"; $employees = array( array( "ID" =&gt; 1, "ФИО" =&gt; "Вувузела Андрей Павлович", "Должность" =&gt; "Менеджер", "Возраст" =&gt; "29" ), array( "ID" =&gt; 2, "ФИО" =&gt; "Ахрюнов Алексей Степанович", "Должность" =&gt; "Бухгалтер", "Возраст" =&gt; "32" ), array( "ID" =&gt; 3, "ФИО" =&gt; "Охрюненко Борис Гориславович", "Должность" =&gt; "Курьер", "Возраст" =&gt; "22" ), array( "ID" =&gt; 4, "ФИО" =&gt; "Бокакин Арсений Брониславович", "Должность" =&gt; "Менеджер", "Возраст" =&gt; "31" ), array( "ID" =&gt; 5, "ФИО" =&gt; "Голохрюхин Евгений Владимирович", "Должность" =&gt; "Директор", "Возраст" =&gt; "40" ), array( "ID" =&gt; 6, "ФИО" =&gt; "Совакошка Мария Игоревна", "Должность" =&gt; "Старший инженер", "Возраст" =&gt; "26" ) );<p>Код вывода исходного массива карточек сотрудников компании:</p>
77 echo "&lt;h2&gt;Сортируем сотрудников компании&lt;/h2&gt;"; $employees = array( array( "ID" =&gt; 1, "ФИО" =&gt; "Вувузела Андрей Павлович", "Должность" =&gt; "Менеджер", "Возраст" =&gt; "29" ), array( "ID" =&gt; 2, "ФИО" =&gt; "Ахрюнов Алексей Степанович", "Должность" =&gt; "Бухгалтер", "Возраст" =&gt; "32" ), array( "ID" =&gt; 3, "ФИО" =&gt; "Охрюненко Борис Гориславович", "Должность" =&gt; "Курьер", "Возраст" =&gt; "22" ), array( "ID" =&gt; 4, "ФИО" =&gt; "Бокакин Арсений Брониславович", "Должность" =&gt; "Менеджер", "Возраст" =&gt; "31" ), array( "ID" =&gt; 5, "ФИО" =&gt; "Голохрюхин Евгений Владимирович", "Должность" =&gt; "Директор", "Возраст" =&gt; "40" ), array( "ID" =&gt; 6, "ФИО" =&gt; "Совакошка Мария Игоревна", "Должность" =&gt; "Старший инженер", "Возраст" =&gt; "26" ) );<p>Код вывода исходного массива карточек сотрудников компании:</p>
78 echo "&lt;h3&gt;Записи сотрудников компании до сортировки(исходный порядок)&lt;/h3&gt;"; print_r(array_values($employees));<p>Вывод исходного массива карточек сотрудников компании до сортировки (исходный порядок):</p>
78 echo "&lt;h3&gt;Записи сотрудников компании до сортировки(исходный порядок)&lt;/h3&gt;"; print_r(array_values($employees));<p>Вывод исходного массива карточек сотрудников компании до сортировки (исходный порядок):</p>
79 Array ( [0] =&gt; Array ( [ID] =&gt; 1 [ФИО] =&gt; Вувузела Андрей Павлович [Должность] =&gt; Менеджер [Возраст] =&gt; 29 ) [1] =&gt; Array ( [ID] =&gt; 2 [ФИО] =&gt; Ахрюнов Алексей Степанович [Должность] =&gt; Бухгалтер [Возраст] =&gt; 32 ) [2] =&gt; Array ( [ID] =&gt; 3 [ФИО] =&gt; Охрюненко Борис Гориславович [Должность] =&gt; Курьер [Возраст] =&gt; 22 ) [3] =&gt; Array ( [ID] =&gt; 4 [ФИО] =&gt; Бокакин Арсений Брониславович [Должность] =&gt; Менеджер [Возраст] =&gt; 31 ) [4] =&gt; Array ( [ID] =&gt; 5 [ФИО] =&gt; Голохрюхин Евгений Владимирович [Должность] =&gt; Директор [Возраст] =&gt; 40 ) [5] =&gt; Array ( [ID] =&gt; 6 [ФИО] =&gt; Совакошка Мария Игоревна [Должность] =&gt; Старший инженер [Возраст] =&gt; 26 ) )<p>Дадим пользователю корпоративного портала возможность сортировки списка по фамилиям, возрасту и порядковому номеру. В этом нам поможет функция пользовательской сортировки<a>usort()</a>.</p>
79 Array ( [0] =&gt; Array ( [ID] =&gt; 1 [ФИО] =&gt; Вувузела Андрей Павлович [Должность] =&gt; Менеджер [Возраст] =&gt; 29 ) [1] =&gt; Array ( [ID] =&gt; 2 [ФИО] =&gt; Ахрюнов Алексей Степанович [Должность] =&gt; Бухгалтер [Возраст] =&gt; 32 ) [2] =&gt; Array ( [ID] =&gt; 3 [ФИО] =&gt; Охрюненко Борис Гориславович [Должность] =&gt; Курьер [Возраст] =&gt; 22 ) [3] =&gt; Array ( [ID] =&gt; 4 [ФИО] =&gt; Бокакин Арсений Брониславович [Должность] =&gt; Менеджер [Возраст] =&gt; 31 ) [4] =&gt; Array ( [ID] =&gt; 5 [ФИО] =&gt; Голохрюхин Евгений Владимирович [Должность] =&gt; Директор [Возраст] =&gt; 40 ) [5] =&gt; Array ( [ID] =&gt; 6 [ФИО] =&gt; Совакошка Мария Игоревна [Должность] =&gt; Старший инженер [Возраст] =&gt; 26 ) )<p>Дадим пользователю корпоративного портала возможность сортировки списка по фамилиям, возрасту и порядковому номеру. В этом нам поможет функция пользовательской сортировки<a>usort()</a>.</p>
80 usort($array, "function");<p>Объяснение:</p>
80 usort($array, "function");<p>Объяснение:</p>
81 <ul><li>usort() - название функции, в скобках указываются параметры.</li>
81 <ul><li>usort() - название функции, в скобках указываются параметры.</li>
82 <li>$array - массив для сортировки.</li>
82 <li>$array - массив для сортировки.</li>
83 <li>"function" - название вашей функции сравнения с собственными правилами сортировки. Она объявляется заранее и принимает два параметра. Обратите внимание на кавычки, в которые заключается название.</li>
83 <li>"function" - название вашей функции сравнения с собственными правилами сортировки. Она объявляется заранее и принимает два параметра. Обратите внимание на кавычки, в которые заключается название.</li>
84 </ul><p>Применим функцию в деле - на сортировке сотрудников по алфавиту, по возрасту (по возрастанию) и по ID (по убыванию).</p>
84 </ul><p>Применим функцию в деле - на сортировке сотрудников по алфавиту, по возрасту (по возрастанию) и по ID (по убыванию).</p>
85 <p>Обратите внимание:</p>
85 <p>Обратите внимание:</p>
86 <ul><li>В каждом из трёх примеров ниже мы сначала объявляем пользовательскую функцию сравнения (alphSort, ageSort и idSort соответственно), а потом передаём её встроенной функции usort() в качестве обработчика массива.</li>
86 <ul><li>В каждом из трёх примеров ниже мы сначала объявляем пользовательскую функцию сравнения (alphSort, ageSort и idSort соответственно), а потом передаём её встроенной функции usort() в качестве обработчика массива.</li>
87 <li>Цикл foreach помогает по очереди перебирать карточки каждого сотрудника в главном массиве $employees. Для удобства мы в рамках цикла обзываем их $employee - то же самое английское слово в единственном числе.</li>
87 <li>Цикл foreach помогает по очереди перебирать карточки каждого сотрудника в главном массиве $employees. Для удобства мы в рамках цикла обзываем их $employee - то же самое английское слово в единственном числе.</li>
88 <li>Для доступа к нужным ключам вложенных массивов (карточек сотрудников) используется<a>синтаксис</a>с квадратными скобками: $array["key"] и так далее.</li>
88 <li>Для доступа к нужным ключам вложенных массивов (карточек сотрудников) используется<a>синтаксис</a>с квадратными скобками: $array["key"] и так далее.</li>
89 </ul>echo "&lt;h3&gt;Сортировка сотрудников по ФИО через usort() и strcmp (по алфавиту)&lt;/h3&gt;"; function alphSort($name1, $name2) { return strcmp($name1["ФИО"], $name2["ФИО"]); }; usort($employees, "alphSort"); foreach ($employees as $employee) { echo "ID " . $employee["ID"] . ", " . "&lt;b&gt;ФИО: " . $employee["ФИО"] . ",&lt;/b&gt; " . "Должность: " . $employee["Должность"] . ", " . "Возраст: " . $employee["Возраст"] . "&lt;br&gt;"; };<p>Функция alphSort() принимает по два значения ФИО ($name1 и $name2) и сравнивает их как строки с помощью встроенной функции <a>strcmp()</a>. Она передаётся во встроенную функцию usort(), где и применяется на нашем массиве.</p>
89 </ul>echo "&lt;h3&gt;Сортировка сотрудников по ФИО через usort() и strcmp (по алфавиту)&lt;/h3&gt;"; function alphSort($name1, $name2) { return strcmp($name1["ФИО"], $name2["ФИО"]); }; usort($employees, "alphSort"); foreach ($employees as $employee) { echo "ID " . $employee["ID"] . ", " . "&lt;b&gt;ФИО: " . $employee["ФИО"] . ",&lt;/b&gt; " . "Должность: " . $employee["Должность"] . ", " . "Возраст: " . $employee["Возраст"] . "&lt;br&gt;"; };<p>Функция alphSort() принимает по два значения ФИО ($name1 и $name2) и сравнивает их как строки с помощью встроенной функции <a>strcmp()</a>. Она передаётся во встроенную функцию usort(), где и применяется на нашем массиве.</p>
90 <p>Вывод отсортированного массива карточек сотрудников компании. Вариант первый - ФИО по алфавиту:</p>
90 <p>Вывод отсортированного массива карточек сотрудников компании. Вариант первый - ФИО по алфавиту:</p>
91 ID 2, ФИО: Ахрюнов Алексей Степанович, Должность: Бухгалтер, Возраст: 32 ID 4, ФИО: Бокакин Арсений Брониславович, Должность: Менеджер, Возраст: 31 ID 1, ФИО: Вувузела Андрей Павлович, Должность: Менеджер, Возраст: 29 ID 5, ФИО: Голохрюхин Евгений Владимирович, Должность: Директор, Возраст: 40 ID 3, ФИО: Охрюненко Борис Гориславович, Должность: Курьер, Возраст: 22 ID 6, ФИО: Совакошка Мария Игоревна, Должность: Старший инженер, Возраст: 26<p>Следующие два примера строятся по похожему принципу. Вот код для сортировки массива карточек сотрудников компании. Вариант второй - по возрасту.</p>
91 ID 2, ФИО: Ахрюнов Алексей Степанович, Должность: Бухгалтер, Возраст: 32 ID 4, ФИО: Бокакин Арсений Брониславович, Должность: Менеджер, Возраст: 31 ID 1, ФИО: Вувузела Андрей Павлович, Должность: Менеджер, Возраст: 29 ID 5, ФИО: Голохрюхин Евгений Владимирович, Должность: Директор, Возраст: 40 ID 3, ФИО: Охрюненко Борис Гориславович, Должность: Курьер, Возраст: 22 ID 6, ФИО: Совакошка Мария Игоревна, Должность: Старший инженер, Возраст: 26<p>Следующие два примера строятся по похожему принципу. Вот код для сортировки массива карточек сотрудников компании. Вариант второй - по возрасту.</p>
92 echo "&lt;h3&gt;Сортировка сотрудников по возрасту через usort() (по возрастанию)&lt;/h3&gt;"; function ageSort($age1, $age2) { if ($age1["Возраст"] == $age2["Возраст"]) { return 0; } return ($age1["Возраст"] &lt; $age2["Возраст"]) ? -1 : 1; }; usort($employees, "ageSort"); foreach ($employees as $employee) { echo "ID " . $employee["ID"] . ", " . "ФИО: " . $employee["ФИО"] . ", " . "Должность: " . $employee["Должность"] . ", " . "&lt;b&gt;Возраст: " . $employee["Возраст"] . "&lt;/b&gt;&lt;br&gt;"; };<p>Функция ageSort() должна сравнивать по два значения возраста сотрудников (в данном примере - $age1, $age2), и возвращать результат (отсортированный массив) в зависимости от результата сравнения. Она также передаётся во встроенную функцию usort().</p>
92 echo "&lt;h3&gt;Сортировка сотрудников по возрасту через usort() (по возрастанию)&lt;/h3&gt;"; function ageSort($age1, $age2) { if ($age1["Возраст"] == $age2["Возраст"]) { return 0; } return ($age1["Возраст"] &lt; $age2["Возраст"]) ? -1 : 1; }; usort($employees, "ageSort"); foreach ($employees as $employee) { echo "ID " . $employee["ID"] . ", " . "ФИО: " . $employee["ФИО"] . ", " . "Должность: " . $employee["Должность"] . ", " . "&lt;b&gt;Возраст: " . $employee["Возраст"] . "&lt;/b&gt;&lt;br&gt;"; };<p>Функция ageSort() должна сравнивать по два значения возраста сотрудников (в данном примере - $age1, $age2), и возвращать результат (отсортированный массив) в зависимости от результата сравнения. Она также передаётся во встроенную функцию usort().</p>
93 <p>Вывод отсортированного массива карточек сотрудников компании. Вариант второй - по возрасту:</p>
93 <p>Вывод отсортированного массива карточек сотрудников компании. Вариант второй - по возрасту:</p>
94 ID 3, ФИО: Охрюненко Борис Гориславович, Должность: Курьер, Возраст: 22 ID 6, ФИО: Совакошка Мария Игоревна, Должность: Старший инженер, Возраст: 26 ID 1, ФИО: Вувузела Андрей Павлович, Должность: Менеджер, Возраст: 29 ID 4, ФИО: Бокакин Арсений Брониславович, Должность: Менеджер, Возраст: 31 ID 2, ФИО: Ахрюнов Алексей Степанович, Должность: Бухгалтер, Возраст: 32 ID 5, ФИО: Голохрюхин Евгений Владимирович, Должность: Директор, Возраст: 40<p>Код для сортировки массива карточек сотрудников компании. Вариант третий - по ID:</p>
94 ID 3, ФИО: Охрюненко Борис Гориславович, Должность: Курьер, Возраст: 22 ID 6, ФИО: Совакошка Мария Игоревна, Должность: Старший инженер, Возраст: 26 ID 1, ФИО: Вувузела Андрей Павлович, Должность: Менеджер, Возраст: 29 ID 4, ФИО: Бокакин Арсений Брониславович, Должность: Менеджер, Возраст: 31 ID 2, ФИО: Ахрюнов Алексей Степанович, Должность: Бухгалтер, Возраст: 32 ID 5, ФИО: Голохрюхин Евгений Владимирович, Должность: Директор, Возраст: 40<p>Код для сортировки массива карточек сотрудников компании. Вариант третий - по ID:</p>
95 echo "&lt;h3&gt;Сортировка сотрудников по ID через usort() (по убыванию)&lt;/h3&gt;"; function idSort($id1, $id2) { if ($id1["ID"] == $id2["ID"]) { return 0; } return ($id1["ID"] &lt; $id2["ID"]) ? 1 : -1; }; usort($employees, "idSort"); foreach ($employees as $employee) { echo "&lt;b&gt;ID " . $employee["ID"] . ",&lt;/b&gt; " . "ФИО: " . $employee["ФИО"] . ", " . "Должность: " . $employee["Должность"] . ", " . "Возраст: " . $employee["Возраст"] . "&lt;br&gt;"; }; ?&gt;<p>Аналогично прошлому примеру, здесь функция idSort() тоже заточена на сравнение по двум значениям - теперь это ID сотрудников ($id1, $id2) - и возвращает результат (отсортированный массив) в зависимости от результата сравнения.</p>
95 echo "&lt;h3&gt;Сортировка сотрудников по ID через usort() (по убыванию)&lt;/h3&gt;"; function idSort($id1, $id2) { if ($id1["ID"] == $id2["ID"]) { return 0; } return ($id1["ID"] &lt; $id2["ID"]) ? 1 : -1; }; usort($employees, "idSort"); foreach ($employees as $employee) { echo "&lt;b&gt;ID " . $employee["ID"] . ",&lt;/b&gt; " . "ФИО: " . $employee["ФИО"] . ", " . "Должность: " . $employee["Должность"] . ", " . "Возраст: " . $employee["Возраст"] . "&lt;br&gt;"; }; ?&gt;<p>Аналогично прошлому примеру, здесь функция idSort() тоже заточена на сравнение по двум значениям - теперь это ID сотрудников ($id1, $id2) - и возвращает результат (отсортированный массив) в зависимости от результата сравнения.</p>
96 <p>Вывод отсортированного массива карточек сотрудников компании. Вариант третий - по ID:</p>
96 <p>Вывод отсортированного массива карточек сотрудников компании. Вариант третий - по ID:</p>
97 ID6, ФИО: Совакошка Мария Игоревна, Должность: Старший инженер, Возраст: 26 ID 5, ФИО: Голохрюхин Евгений Владимирович, Должность: Директор, Возраст: 40 ID 4, ФИО: Бокакин Арсений Брониславович, Должность: Менеджер, Возраст: 31 ID 3, ФИО: Охрюненко Борис Гориславович, Должность: Курьер, Возраст: 22 ID 2, ФИО: Ахрюнов Алексей Степанович, Должность: Бухгалтер, Возраст: 32 ID 1, ФИО: Вувузела Андрей Павлович, Должность: Менеджер, Возраст: 29<p>Мы рассмотрели основные виды сортировок массивов в PHP: числовую, алфавитную, естественную, многомерную и пользовательскую. Для всего этого мы нашли подходящие функции.</p>
97 ID6, ФИО: Совакошка Мария Игоревна, Должность: Старший инженер, Возраст: 26 ID 5, ФИО: Голохрюхин Евгений Владимирович, Должность: Директор, Возраст: 40 ID 4, ФИО: Бокакин Арсений Брониславович, Должность: Менеджер, Возраст: 31 ID 3, ФИО: Охрюненко Борис Гориславович, Должность: Курьер, Возраст: 22 ID 2, ФИО: Ахрюнов Алексей Степанович, Должность: Бухгалтер, Возраст: 32 ID 1, ФИО: Вувузела Андрей Павлович, Должность: Менеджер, Возраст: 29<p>Мы рассмотрели основные виды сортировок массивов в PHP: числовую, алфавитную, естественную, многомерную и пользовательскую. Для всего этого мы нашли подходящие функции.</p>
98 <p>Для более детального знакомства с функциями сортировки массивов в PHP рекомендуем пользоваться таблицами-напоминалками: в разных руководствах они сделаны по-разному, поэтому лучше найти ту табличку, которая будет удобна именно вам. А для синтаксически правильного применения советуем пользоваться<a>официальной документацией</a>языка, тем более она переведена на русский.</p>
98 <p>Для более детального знакомства с функциями сортировки массивов в PHP рекомендуем пользоваться таблицами-напоминалками: в разных руководствах они сделаны по-разному, поэтому лучше найти ту табличку, которая будет удобна именно вам. А для синтаксически правильного применения советуем пользоваться<a>официальной документацией</a>языка, тем более она переведена на русский.</p>
99 <a>Научитесь: Профессия PHP-разработчик с нуля до PRO Узнать больше</a>
99 <a>Научитесь: Профессия PHP-разработчик с нуля до PRO Узнать больше</a>