PHP динамические хлебные крошки - как скрыть дубликаты? - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь избавиться от дублирующихся элементов в моих динамических хлебных крошках.

    //$url = substr(strstr($_SERVER["REQUEST_URI"], 'admin'), 6);
    $url = substr(strstr('/content/modal/admin/content/timeline/timeline', 'admin'), 6);
    $parse_url = substr($url, 0, strpos($url, "."));

    $array = explode("/", $parse_url);

    if($array[0] == 'index') {
        echo 'CMP';
    } else {
        echo '<a href="javascript:;" onclick="initializemodal(\'content/modal/admin/index\')">Staff</a> / ';

        $path = [];
        foreach($array as $value) {
            $path[] = $value;

            echo '<a href="javascript:;" onclick="initializemodal(\'content/modal/admin/' . implode('/', $path) . '\')">' . $value . '</a> / ';
        }
    }

Это выводит как:

<a href="javascript:;" onclick="initializemodal('content/modal/admin/index')">Staff</a> /
<a href="javascript:;" onclick="initializemodal('content/modal/admin/content')">content</a> /
<a href="javascript:;" onclick="initializemodal('content/modal/admin/content/timeline')">timeline</a> /
<a href="javascript:;" onclick="initializemodal('content/modal/admin/content/timeline/timeline')">timeline</a> / 

Как вы можете видеть, он также отображает каталог на3-я строка.Четвёртая строка - это сам файл.

Как мне сделать так, чтобы он сохранял дубликат в URL, но пропускал саму ссылку?Чтобы уточнить, как я могу получить этот вывод вместо этого:

<a href="javascript:;" onclick="initializemodal('content/modal/admin/index')">Staff</a> /
<a href="javascript:;" onclick="initializemodal('content/modal/admin/content')">content</a> /
<a href="javascript:;" onclick="initializemodal('content/modal/admin/content/timeline/timeline')">timeline</a> / 

1 Ответ

0 голосов
/ 30 сентября 2018

Измените ваш цикл следующим образом:

    foreach($array as $index => $value) {
        $path[] = $value;
        //skip current element if next element is identically
        if($value == $array[$index+1]) continue;

        echo '<a href="javascript:;" onclick="initializemodal(\'content/modal/admin/' . implode('/', $path) . '\')">' . $value . '</a> / ';
    }

Он пропустит элемент в массиве, если следующий элемент такой же.Таким образом, когда есть повторяющиеся записи (но только непосредственно следующие), распечатывается только последняя из этих записей (и его полный URL)

...