У меня есть многомерный массив, и родительский массив, и дочерние массивы являются ассоциативными.
Хотя существуют различные способы сортировки многомерных массивов с числовым верхним уровнем и ассоциативными дочерними уровнями по дочернему значению (например, здесь или здесь ), в моем случае я потерял работу где верхний уровень тоже ассоциативный.
Вот мой код:
$dbstructure = array (
'documents' => array (
'prettyname' => array ('en' => 'Documents', 'pl' => 'Dokumenty', 'de' => 'Dokumente'),
'columns' => array ('file', 'name', 'descr', 'tags' ),
),
'photos' => array (
'prettyname' => array ('en' => 'Photos', 'pl' => 'Zdjęcia', 'de' => 'Fotos'),
'columns' => array ('name', 'file', 'descr', 'publish', 'tags', 'file_date' ),
),
'users' => array (
'prettyname' => array ('en' => 'Users', 'pl' => 'Użytkownicy', 'de' => 'Benutzer'),
'columns' => array ('name', 'password', 'email', 'role', 'status', 'lang' ),
)
);
Массив является частью файла конфигурации, который описывает структуру БД, и я хочу отсортировать первый уровень по ...['prettyname'][$lang]
, $lang
, являющемуся либо 'en'
, 'pl'
, либо 'de'
. Другими словами, пользователи должны получать имена таблиц в правильном алфавитном порядке на своем языке.
Брит получает этот заказ: 'documents'
- 'photos'
- 'users'
Поляк получает: 'documents'
- 'users'
- 'photos'
(Документы - Użytkownicy - Zdjęcia)
Немец получает: 'users'
- 'documents'
- 'photos'
(Benutzer - Dokumente - Fotos)
Любая помощь очень ценится. Спасибо!