Выбор страницы из массива

278
22 февраля 2018, 15:42

Есть массив страниц, в котором ключ является название рубрики, а значение ключа является список страниц в этой рубрике.
P.S. исправил немного вопрос

$uri = 'page3/link3.1';
$pages = [
    'page1'=>[
        'link1'=>'ссылка1',
        'link1.2'=>'ссылка1.2',
        'link1.3'=>'ссылка1.3'
    ],
    'page2'=>[
        'link2.1'=>'ссылка2',
        'link2.2'=>'ссылка2.2',
        'link2.3'=>'ссылка2.3'
    ],
    'page3'=>[
        'link3.1'=>'ссылка3',
        'link3.2'=>'ссылка3.2',
        'link3.3'=>'ссылка3.3'
    ],
]

нужно сделать что-то на подобии связанных постов.
Подскажите, как правильно определить, допустим если находимся не на странице рубрики page1, а в подрубрике, т.е. значения массива link1, то нужно получить все подрубрики, кроме текущей ?
К примеру зашли на страницу page3/link3.1 значит нужно получить все страницы в текущей рубрике page3 кроме link3.1.
Нужно получить значения ключей link чтобы вывести на русском названия связанных записей, кроме текущей.
Но если текущая страница page3, то все рубрики выводить не нужно

Answer 1

К примеру зашли на страницу page3/link3.1 значит нужно получить все страницы в текущей рубрике page3 кроме link3.1

Вот вроде бы то, что вам нужно:

$pages = [
    'page1'=>[
        'link1'=>'ссылка1',
        'link1.2'=>'ссылка1.2',
        'link1.3'=>'ссылка1.3'
    ],
    'page2'=>[
        'link2.1'=>'ссылка2',
        'link2.2'=>'ссылка2.2',
        'link2.3'=>'ссылка2.3'
    ],
    'page3'=>[
        'link3.1'=>'ссылка3',
        'link3.2'=>'ссылка3.2',
        'link3.3'=>'ссылка3.3'
    ],
];
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
$array = explode('/', rtrim($uri, '/'));
if (count($array) > 1) {
    list($page, $link) = $array;
    $pages = $pages[$page] ?? [];
    foreach ($pages as $key => $url ) {
        $key == $link ?: print "$url<br>";
    }
}
READ ALSO
Почему функции wordpress не работают в mail.php?

Почему функции wordpress не работают в mail.php?

Сайт на wordpressОтправка почты через ajax в таком виде работает:

259
Как сделать доп услуги в оформление заказа Битрикс?

Как сделать доп услуги в оформление заказа Битрикс?

Здравствуйте, подскажите пожалуйста, как можно реализовать функционал доп услуги (добавляется сумма 500 руб или другое значение берется из админки)...

279
Как запустить PHP несколько раз без Cron

Как запустить PHP несколько раз без Cron

Добрый вечер всем ! Столкнулся с такой задачей, что нужно запустить PHP скрипт несколько раз, но не через Cron, тк

293
Работа аутентификации Laravel через SMS

Работа аутентификации Laravel через SMS

Всем приветНужно привязать к сайту на ларавел авторизацию в личный кабинет через SMS (к слову, только она и будет использоваться, никаких прочих...

419