PHP

Сортировка массива по количеству символов

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

Для подсчета символов рекомендуется использовать mb_strlen вместо strlen т.к. в UTF8 strlen возвращает неправильный результат для русских букв.

1

Сортировка ключей массива

uksort() - сортирует массив по ключу, используя callback-функцию.

$array = array(
    'ЗИЛ'        => 1,
    'ИЖ'         => 0,
    'Москвич'    => 3,
    'УАЗ'        => 6,
    'Alfa Romeo' => 2,
    'Audi'       => 5,
    'BMW'        => 7,
    'Cadillac'   => 9,
);

function sort_key_strlen($a, $b) {
    return  mb_strlen($a) - mb_strlen($b);
}

uksort($array, 'sort_key_strlen');
print_r($array);
Array
(
    [ИЖ] => 0
    [ЗИЛ] => 1
    [УАЗ] => 6
    [BMW] => 7
    [Audi] => 5
    [Москвич] => 3
    [Cadillac] => 9
    [Alfa Romeo] => 2
)

Поменять направление сортировки можно изменив callback-функцию:

function sort_key_strlen($a, $b) {
    return  mb_strlen($b) - mb_strlen($a);
}

uksort($array, 'sort_key_strlen');
print_r($array);

Или перевернуть массив функцией array_reverse:

function sort_key_strlen($a, $b) {
    return  mb_strlen($a) - mb_strlen($b);
}

uksort($array, 'sort_key_strlen');
$array = array_reverse($array);
print_r($array);
2

Сортировка значений массива

По такому же принципу можно отсортировать по значениям, сохраняя ключи массива используя uasort.

$array = array(
    1 => 'ЗИЛ',
    2 => 'ИЖ',
    3 => 'Москвич',
    4 => 'УАЗ',
    5 => 'Alfa Romeo',
    6 => 'Audi',
    7 => 'BMW',
    8 => 'Cadillac',
);

function sort_value_strlen($a, $b) {
    return  mb_strlen($a) - mb_strlen($b);
}

uasort($array, 'sort_value_strlen');
print_r($array);
Array
(
    [2] => ИЖ
    [1] => ЗИЛ
    [4] => УАЗ
    [7] => BMW
    [6] => Audi
    [3] => Москвич
    [8] => Cadillac
    [5] => Alfa Romeo
)
В статье приведен пример формы и php скрипта для безопасной загрузки файлов на сервер, метод отправки файлов через...
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
В статье описана регистрация клиента, получения access token, примеры использования методов API Instagram на PHP.
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....