2011-06-24 22 views
-1

我知道这可以缩短并且对某人来说很容易。我想用一个表达式将其切成几行。这些变量中的每一个都具有不同的值,并且可能存在也可能不存在。谢谢你的帮助!缩短IF IF THEN语句从var1到var20的列表... PHP

if ($lang1) { 
     echo $lang1 ."<br>"; 
    } 
    if ($lang2) { 
     echo $lang2 ."<br>"; 
    } 
    if ($lang3) { 
     echo $lang3 ."<br>"; 
    } 
    if ($lang4) { 
     echo $lang4 ."<br>"; 
    } 
    if ($lang5) { 
     echo $lang5 ."<br>"; 
    } 
    if ($lang6) { 
     echo $lang6 ."<br>"; 
    } 
    if ($lang7) { 
     echo $lang7 ."<br>"; 
    } 
    if ($lang8) { 
     echo $lang8 ."<br>"; 
    } 
    if ($lang9) { 
     echo $lang9 ."<br>"; 
    } 
    if ($lang10) { 
     echo $lang10 ."<br>"; 
    } 
    if ($lang11) { 
     echo $lang11 ."<br>"; 
    } 
    if ($lang12) { 
     echo $lang12 ."<br>"; 
    } 
    if ($lang13) { 
     echo $lang13 ."<br>"; 
    } 
    if ($lang14) { 
     echo $lang14 ."<br>"; 
    } 
    if ($lang15) { 
     echo $lang15 ."<br>"; 
    } 
    if ($lang16) { 
     echo $lang16 ."<br>"; 
    } 
    if ($lang17) { 
     echo $lang17 ."<br>"; 
    } 
    if ($lang18) { 
     echo $lang18 ."<br>"; 
    }  
    if ($lang19) { 
     echo $lang19 ."<br>"; 
    } 
    if ($lang20) { 
     echo $lang20 ."<br>"; 
    } 
+0

你还是要声明这个变量,我不知道它是否以相同的方式完成... – dader

回答

5

Store中的数组中的值:

$langs = array(...); 
foreach($langs as $lang) 
    echo $lang . '<br>'; 

您可以使用array_push()将元素添加到阵列中。

+0

太棒了。还有一个问题:如果我想先指定一个变量(如“西班牙文”),然后再按字母顺序列出其他变量,那我该怎么做? – David

0

证明:http://codepad.org/qYHZwcbu

$my_language_array = array(0 => 'English', 1 => 'French'); 

foreach($my_language_array as $language) 
    if (!empty($language)) 
     echo $language . "<br />"; 
1

,你可以这样做的,不过,我不建议这样做:

for ($i = 1; $i < 20; $i++) 
    if (${"lang$i"}) // better : if (!empty(${"lang$i"})) 
     echo ${"lang$i"} . "<br>"; 

这将excatly你问什么。但正如我所说,我不建议这样做,其他人的更好的解决方案可以解答您的问题。

0

使用数组来代替,像这样为每一位:

$lang[10] = 'asdf';

其中10是关键,而asdf是你的价值。

然后用一个for循环:

for ($i = 1; $i <= 20; $i++) if ($lang[$i]) echo ($lang[$i] . "<br />"); 
+0

请问为什么downvote?这是一个非常好的答案。 – Cyclone

-3

补充什么雷夫凯特勒说:

$langs = array(...); 
$desired_lang = ''; 
foreach($langs as $lang){ 
    if($lang == $desired_lang) 
     echo $lang 
} 

编辑

多亏了downvotes,我才意识到,上面的代码是最愚蠢的我曾发布的东西,所以我会纠正它:

if(in_array($desired_lang,$langs)) 
    echo $langs[$desired_lang] 

随着气旋要求上的评论,如果OP想要一种以上的语言,他可以这样做:

$langs = array('lang1', 'lang2','lang3'); 
$desired_langs = array('lang1','lang2'); 
foreach($desired_langs as $desired_lang){ 
    if(in_array($desired_lang, $langs)){ 
     echo $langs[$desired_lang] 
    } 
} 

Downvotes都不错,他们表现出你错了。 :D

+0

如果需要多个lang,该怎么办? – Cyclone

0
<?php 
$lang1 = 'sss'; 
$lang2= 'gddd'; 
    for ($i=1;$i<=20;$i++) 
{ 
    $langname ="lang$i"; 
if ($$langname) 
{ 
    echo ($$langname); 
} 
} 
?>