Сортировка: ksort(), krsort()

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

В этом наборе заданий мы разберемся, как управлять порядком элементов в ассоциативных массивах, ориентируясь на их ключи. Это незаменимый навык, когда нужно отсортировать данные по идентификаторам, именам или датам, которые выступают в роли ключей. Вы научитесь выстраивать элементы в алфавитном порядке и в обратном ему.

Вам предстоит сопоставить функции с их описанием, заполнить пропуски в коде, найти и исправить ошибки, предсказать результат выполнения скриптов и даже собрать работающий код из разрозненных частей. Задания построены от простого к сложному, что поможет плавно погрузиться в тему и закрепить материал на практике.

Список тем

Функции сортировки по ключам и их назначение

id: 38975_task1

Каждая PHP-функция для работы с массивами имеет свое уникальное предназначение. Сопоставьте названия функций из правого столбца с их описанием в левом столбце, чтобы правильно определить, какая из них за что отвечает.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Сортирует массив по ключам в порядке возрастания
Сортирует массив по ключам в порядке убывания
Сортирует массив по значениям, сохраняя ключи
Возвращает все ключи из массива
krsort()
asort()
ksort()
array_keys()
Сообщения
Проверить
Показать подсказку

Сортировка пользователей по имени

id: 38975_task2

У вас есть массив, где ключи — это имена пользователей, а значения — их возраст. Ваша задача — отсортировать этот массив по именам в алфавитном порядке. Впишите название нужной функции в код, чтобы выполнить эту задачу.

Заполните пропуски
<?php
$users = [
    'David' => 30,
    'Alice' => 25,
    'Charlie' => 35,
    'Bob' => 28
];

// Сортируем массив по ключам (именам)
input1S($users);

print_r($users);
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Обратная сортировка фруктов по артикулу

id: 38975_task3

Дан массив фруктов, где ключи — это их артикулы (числа). Необходимо отсортировать массив по артикулам в обратном порядке, от большего к меньшему. Перетащите подходящую функцию из банка в пропуск в коде.

Нужно правильно расставить в пропуски предложенные варианты
<?php
$fruits = [
    103 => 'Apple',
    201 => 'Banana',
    101 => 'Orange',
    305 => 'Mango'
];

// Сортируем массив по ключам в обратном порядке
input1S($fruits);

print_r($fruits);
?>
krsort
ksort
asort
sort
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Найдите и исправьте ошибку в сортировке

id: 38975_task4

В этом коде программист хотел отсортировать массив оценок по названиям предметов (ключам) в алфавитном порядке. Однако была допущена ошибка в названии функции. Найдите строку с ошибкой и исправьте её, чтобы сортировка работала корректно.

Найдите ошибку и исправьте
<?php
$grades = [
    'Math' => 'A',
    'History' => 'B',
    'Art' => 'C'
];
 
keysort($grades);
 
print_r($grades);
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что выведет код после ksort?

id: 38975_task5

Проанализируйте код. В нем создается ассоциативный массив, который затем сортируется по ключам в порядке возрастания. Выберите вариант, который точно соответствует тому, что выведет функция `print_r` после выполнения скрипта.

Выберите правильный вариант ответа
<?php
$data = [
    'c' => 'Cherry',
    'a' => 'Apple',
    'b' => 'Banana'
];

ksort($data);

print_r($data);
?>
Сообщения
Проверить
Показать подсказку

Результат обратной сортировки по ключу

id: 38975_task6

Теперь давайте посмотрим на обратную сортировку. Дан массив с числовыми ключами. К нему применяется функция `krsort()`. Какой результат выведет `print_r`? Внимательно изучите ключи и порядок, который должен получиться.

Выберите правильный вариант ответа
<?php
$pages = [
    10 => 'About Us',
    2 => 'Home',
    15 => 'Contacts',
    5 => 'Services'
];

krsort($pages);

print_r($pages);
?>
Сообщения
Проверить
Показать подсказку

Какое имя будет первым?

id: 38975_task7

Дан массив сотрудников. Скрипт сортирует его по именам (ключам) в алфавитном порядке, а затем выводит первый ключ из отсортированного массива. Впишите имя, которое будет выведено на экран.

Что должно получиться?
<?php
$staff = [
    'Peter' => 'Manager',
    'John' => 'Developer',
    'Anna' => 'Designer'
];

ksort($staff);

echo array_key_first($staff);
?>
Сообщения
Проверить
Показать подсказку

Сборка скрипта для вывода списка городов

id: 38975_task8

Соберите из разрозненных строк кода полноценный PHP-скрипт. Скрипт должен объявить массив столиц, отсортировать его по названиям стран (ключам) в обратном алфавитном порядке и вывести каждую пару "Страна: Столица" на новой строке.

Перетяните в правильном порядке строки из одного блока в другой
echo "{$country}: {$city}\n";
krsort($capitals);
<?php
foreach ($capitals as $country => $city) {
$capitals = ['Germany' => 'Berlin', 'USA' => 'Washington', 'France' => 'Paris'];
?>
ksort($capitals);
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Классификация функций сортировки

id: 38975_task9

В PHP существует множество функций для сортировки массивов. Распределите предложенные функции по категориям в зависимости от того, как они работают: сортируют по ключу, по значению или выполняют простую сортировку с потерей ключей.

Перетяните элементы в соответствующие блоки
Сортировка по ключу
Сортировка по значению (с сохранением ключей)
Простая сортировка (ключи сбрасываются)
ksort()
asort()
krsort()
sort()
arsort()
rsort()
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру