Автор Наташа Канапушкина задал вопрос в разделе Другие языки и технологии
PHP. Не получается отсортировать первый уровень трехмерного массива (по алфавиту). и получил лучший ответ
Ответ от Капитан Гугл[гуру]
В PHP нет трехмерных массивов, есть массивы массивов массивов.
Что такое "отсортировать массив массивов по алфавиту"? А как сравнить два массива по алфавиту - это же не строки?
Я вижу, ты просто загоняешь массив в sort, надеясь, что там сделается как надо, не понимая, как именно надо? Хорошо, sort как-то сортирует массив. Сортировка, насколько я вижу, работает - а ты утверждаешь, что не работает. Может, что-то другое не работает?
Пожалуйста, ответь на эти вопросы - не мне, так хотя бы себе. Разберись, что ты делаешь, перед тем, как задавать вопрос - 80%, что ответ придет сам. Капитан Гугл
Искусственный Интеллект
(144871)
Рассчитан, но не так, как ты делаешь.
ксорт- сортирует ключи от А до Я, асорт - значения по алфавиту
$main = array(
"A" , array(12.67, "df" , array("x", "h", "bbb"), aaa, bbb),
"B" , array(20, 30, array(34.5, 45, 23.9), 15),
"F", "Z",
"FGHJ" , array("eee", "aaa", 12, 2, 67.8),
12, 2, 67);
<-- его нужно сортировать, верно?
Но как? Натурально, алфавитно, по регулярной экспресси?
Совет:
Так как массив не ДИНАМИЧЕСКИЙ, то можно сортировать прямо "с нутри". Еще до начала итерации foreach.
Вот так:
$main = array(
"A" , ksort(array(12.67, "df" , array("x", "h", "bbb"), aaa, bbb)),
"B" , ksort(array(20, 30, array(34.5, 45, 23.9), 15)),
"F", "Z",
"FGHJ" , ksort(array("eee", "aaa", 12, 2, 67.8)),
12, 2, 67);