PHP - 如果数组包含

时间:2018-05-22 15:43:36

标签: php arrays wordpress if-statement

在wordpress中我有一个自定义字段,您可以在其中选择多种语言。现在我想创建一个if语句,这样我就可以显示所选语言的标志。

例如,选择以下语言:NL,EN,DE,IT。

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

这可以,但我想显示每种选定语言的标志。因此,如果数组包含NL显示NL-flag,并且它还包含EN,则显示EN-flag等。

我怎样才能实现这样的目标?

此致

4 个答案:

答案 0 :(得分:2)

在包含语言代码的文件夹上为每种语言创建一个图像,如此

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

循环通过数组显示图像

foreach ($languagevalue as $lang) {
    echo '<img src="images/' . $lang . '-flag.png" alt=""/>';
}

答案 1 :(得分:1)

尝试这样的事情来检查每个项目的存在

 <?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
 }
 ?>

答案 2 :(得分:1)

我实际上是通过遍历$languagevalue数组创建另一个带有标志图像的数组:

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

现在您可以迭代$flags

这假设您可以直接从语言名称派生标志名称。如果不是这种情况,则必须使用类似switch语句的内容将语言名称映射到标志图像名称。

答案 3 :(得分:1)

您可以使用结尾的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=""/>

添加新行以澄清