powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP. Сортировка многомерного ассоциативного массива по ключу
3 сообщений из 3, страница 1 из 1
PHP. Сортировка многомерного ассоциативного массива по ключу
    #39323514
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В гугле много примеров, но они для сортировки по значению , которое в ключе. А если нужно, чтобы сами ключи были отсортированы? Я вот столкнулся с такой редкой задачей...
Для сортировки по ключу, в PHP есть функция ksort . Для массива, где нужно сортировать по ключу1, а потом по ключу2, функцию ksort надо прогнать 2 раза. И при этом перестроить массив. Велосипед у меня получился буквально из 2-х строчек (c PHP 5, в цикле foreach можно изменить массив, используя ссылочный оператор & )
Код: php
1.
2.
ksort($arr);
foreach($arr as &$k) {ksort($k);}

Может, это пригодится это тому, кто столкнется с похожей задачей...
Пример
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?php
$arr = [
  'Bb' => ['поезд' => ['val' => 'elem B 2', 'styleIdx' => 'bbbb']],
  'Aa' => ['яблоко' => ['val' => 'elem A 2', 'styleIdx' => 'style2']],
  'Cc' => ['стрекоза' => ['val' => 'elem C three', 'styleIdx' => 'cccc']],
];
$arr['Aa']['абрикос']['val'] = 'elem A one';
$arr['Aa']['абрикос']['styleIdx'] = 'style1';
$arr['Bb']['автомобиль']['val'] = 'elem B one';
$arr['Bb']['автомобиль']['styleIdx'] = 'style2';
$arr['Cc']['муравей']['val'] = 'elem C 2';
$arr['Cc']['муравей']['styleIdx'] = 'style3';

echo '----------------------- Исходный массив -----------------------------';
echo '<pre>', print_r($arr,true), '</pre>';

ksort($arr);
foreach($arr as &$k) {ksort($k);}

echo '<br> ----------------------- Отсортирован по ключам -----------------------------';
echo '<pre>', print_r($arr,true), '</pre>';
?>

...
Рейтинг: 0 / 0
PHP. Сортировка многомерного ассоциативного массива по ключу
    #39329426
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLPowerUser,

всё задолго до Вас придумали уже :)

ссылка с более оригинальными решениями
...
Рейтинг: 0 / 0
PHP. Сортировка многомерного ассоциативного массива по ключу
    #39329506
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

точно. Спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP. Сортировка многомерного ассоциативного массива по ключу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]