Более легкое создание меню зависит от сессии

Я делаю меню для языка веб-сайта, и оно работает, но я думаю, что способ, которым я делаю это, не лучший способ, если я добавлю больше языков в будущем.
Может быть, кто-то может показать лучший пример.
Вот часть того, что у меня есть.

if(isSet($_SESSION['lang'])) {
$lang = $_SESSION['lang'];
if ($lang == "en") {
echo '<li class="">EN
<ul>
<li class="submenu">RU</li>
<li class="submenu">ES</li>
<li class="submenu">GR</li>
<li class="submenu">DE</li>
</ul>
</li>';
}
if ($lang == "de") {
echo '<li class="">DE
<ul>
<li class="submenu">RU</li>
<li class="submenu">ES</li>
<li class="submenu">GR</li>
<li class="submenu">EN</li>
</ul>
</li>';
}
// and so on for every language..
}

Вероятно, было бы лучше сделать какой-нибудь массив, чем функцию foreach, но я понятия не имею, как это сделать х, х слишком запутанно

1

Решение

Если вам нужен массив, можно создать функцию, эта функция получит язык в качестве параметра и отобразит параметры в соответствии с ним:

<?php

function display ( $lang )
{ $arr = array( "en" => array( "RU","ES","GR","DE" ),
"de" => array( "RU","ES","GR","DE" )
);
echo '<li class="">' .
'<ul>';
foreach ( $arr[ $lang ] as $item ) // DISPLAY THE OPTIONS.
echo '<li class="submenu">' . $item . '</li>';
echo '</ul>
</li>';
}

display( "en" ); // DISPLAY OPTIONS FOR "EN".
display( "de" ); // DISPLAY OPTIONS FOR "DE".

?>

В будущем вы можете добавить больше языков в массив.

Чтобы проверить это, скопируйте и вставьте предыдущий код в файл, сохраните его как PHP и откройте в браузере.

0

Другие решения

Я думаю, что-то вроде этого должно быть @ help, я определил массив для языков, и каждый раз, когда вам нужно добавить язык, вы просто добавили туда.

$lang = $_SESSION['lang'];
$languages = array ("de" => "DE", "ru" => "RU", "en" => "EN");

foreach ($languages as $key=>$val)
if ($lang == $key)
{
unset($languages[$key]);
$main_lang = $val;
}

echo "<li class=\"\">$main_lang //main button
<ul> // sub menu";
foreach ($languages as $language)
echo "<li class=\"submenu\">$language</li>";
echo "</ul>
</li>";
0

По вопросам рекламы [email protected]