2011-06-24 7 views
-1

これは短縮でき、誰かにとって簡単になることがわかります。私はこれを数行に減らすために式を使用したいと思います。これらの変数のそれぞれは異なる値を保持し、存在しても存在しなくてもよい。ご協力いただきありがとうございます!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

ストア配列の値:

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

あなたは配列に要素を追加するためにarray_push()を使用することができます。

+0

恐ろしい。もう1つの質問:「スペイン語」などの変数を最初に指定し、残りをアルファベット順に並べた場合、どうすればよいでしょうか? – 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あなたが求めて何であろう。しかし、私が言ったように、私はこれをお勧めしません。 10が鍵であり、そしてasdfがあなたの価値ある

$lang[10] = 'asdf';

0

は、それぞれに対して、次のように、代わりに配列を使用してください。

そして、forループを使用します。

レイフケトラーは答えたものを補完する
for ($i = 1; $i <= 20; $i++) if ($lang[$i]) echo ($lang[$i] . "<br />"); 
+0

私はなぜdownvoteを聞くことができますか?それは完璧に良い答えです。 – Cyclone

-3

:downvotesへ

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

EDIT

おかげで、私は上記のコードは非常識であることに気づきました私が今までに投稿したものなので、修正します:

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

複数の言語が必要な場合はどうなりますか? – Cyclone

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