Сортировать многомерный массив

1

Мне нужно отсортировать многомерный массив, который представляет структуру файловой системы:

Array
(
    [dir1] => Array
        (
            [dir2] => Array
                (
                    [dir3] => Array
                        (
                            [dir4] => Array
                                (
                                    [0] => file1.php
                                    [1] => abc.php
                                )

                        )

                    [0] => file2.php
                    [1] => abc.php
                )

        )

    [abc] => Array
        (
            [abc] => Array
                (
                    [abc] => Array
                        (
                            [0] => file5.php
                        )

                )

        )

)

Я не знаю, что такое алгоритм.

  • 0
    Как вы хотите, чтобы это было отсортировано?
Теги:
arrays
multidimensional-array
sorting

1 ответ

3
Лучший ответ

http://php.net/sort#51088

замените sort ($ a) в начале функции mulsort на ksort ($ a)

ИЗМЕНИТЬ: извините, просто измените код mulsort на:

function mulsort(&$a)
{
 ksort($a);
 foreach($a as &$value)
    if (is_array($value))
        mulsort($value);
}
  • 0
    Большое спасибо! Работает отлично!
  • 0
    Что ж, у вас будет проблема с каталогами или файлами, потому что вы должны использовать разные алгоритмы для двух из них (ksort для уровня каталогов, sort для файлов). IMO, лучшие варианты, если сделать массивы файлов больше похожими на «filename» => true, а не 0 => «filename» и применить мульссорт, который я только что добавил.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню