PHP-код для вывода трехуровневой навигации - PullRequest
0 голосов
/ 03 декабря 2011

Я работаю на сайте ExpressionEngine, и у меня есть цикл, выводящий отсортированный список.То, что я хотел бы сделать, это вывести список на три уровня глубиной, используя PHP.

/apples/black/rotten
/apples/green/cortland
/apples/green/cortland
/apples/red/granny
/apples/red/granny
/bananas/green/bad
/bananas/green/bad
/bananas/yellow/good
/bananas/yellow/good
/oranges/orange/tasty
/oranges/yellow/small
/oranges/yellow/small

Каков наилучший метод для преобразования этого во вложенный список?

Очевидно, это составленный список для иллюстрации.Я пытался выяснить это уже пару дней, и мне не повезло.Это вариант рекурсии.

1 Ответ

0 голосов
/ 03 декабря 2011
$arr = array();
foreach (file(..., FILE_IGNORE_NEW_LINES) as $line)
{
    $tmp = explode("/", substr($line, 1));
    for ($i=0; $i<=2; $i++)
    {
        switch ($i)
        {
            case 0:
                if ( ! isset($arr[$tmp[0]]))
                {
                    $arr[$tmp[0]] = array();
                }
                break;
            case 1:
                if ( ! isset($arr[$tmp[1]]))
                {
                    $arr[$tmp[0]][$tmp[1]] = $tmp[2];
                }
                break;
        }
    }
}

Использование файла предполагает, что результаты выражения сохранены в текстовом файле,
Вы можете напрямую итерировать, если уже есть в массиве

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...