PHP - если массив содержит - PullRequest
0 голосов
/ 22 мая 2018

В WordPress у меня есть настраиваемое поле, где вы можете выбрать несколько языков.Теперь я хочу сделать оператор if, чтобы можно было отображать флаги для выбранных языков.

Например, выбраны следующие языки: NL, EN, DE, IT.

<?php if (in_array('nl', $languagevalue)) { ?>
    NL image
<?php } ?>

Thisработает, но я хочу отобразить флаги для каждого выбранного языка.Так что, если массив содержит NL, показывает NL-флаг, и если он также содержит EN, показывает EN-флаг и т. Д.

Как мне достичь этого?

С уважением,

Ответы [ 4 ]

0 голосов
/ 22 мая 2018

Вы можете наложить значения с помощью html конца и начала тега IMG.
Таким образом, вам не нужно зацикливаться или проверять, находится ли значение в массиве.HTML генерируется автоматически.

$languagevalue = ['NL', 'EN', 'DE'];

echo '<img src="images/' . implode('-flag.png" alt=""/> <img src="images/' ,$languagevalue) . '-flag.png" alt=""/>';

https://3v4l.org/D2IMg

Вывод:

<img src="images/NL-flag.png" alt=""/> 
<img src="images/EN-flag.png" alt=""/> 
<img src="images/DE-flag.png" alt=""/>

Добавлены новые строки для уточнения

0 голосов
/ 22 мая 2018

Попробуйте что-то вроде этого, чтобы проверить наличие каждого элемента

 <?php 
 if (in_array('nl', $languagevalue)) { 
     //NL image
 }
 if (in_array('en', $languagevalue)) { 
     //en image
 }
 if (in_array('de', $languagevalue)) { 
     //de image
 }
 if (in_array('it', $languagevalue)) { 
     //it image
 }
 ?>
0 голосов
/ 22 мая 2018

Я бы на самом деле создал другой массив с изображениями флагов, перебирая массив $languagevalue:

$flags = [];
foreach($languagevalue as $lang) {
  $flags[] = "$lang-flag";
}

Теперь вы можете перебирать $flags.

Это предполагает, что вы можетеполучить имя флага непосредственно из названия языка.Если это не так, вам придется использовать что-то вроде оператора switch, чтобы сопоставить имя языка с именем изображения флага.

0 голосов
/ 22 мая 2018

Создайте одно изображение для каждого языка в папке, содержащей код языка, например:

images/en-flag.png
images/nl-flag.png

И выполните цикл по массиву для отображения изображений

foreach ($languagevalue as $lang) {
    echo '<img src="images/' . $lang . '-flag.png" alt=""/>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...