2016-07-29 48 views
0

對於愚蠢的questiton,我很抱歉,但我不明白,如何創建一個將在if/else循環中使用的變量列表。我有一個變量$ category_id和這個變量的不同值(1,2,3等)。我想打一個statment這樣如何在php中創建變量列表?

if (isset($category_id) && $category_id == '1') { 
some code here 
} 

,但我需要像

if (isset($category_id) && $category_id == '1,2,5,11') { 
some code here 
} 

我怎樣才能做到這一點指定此變量的多個值?

+2

把它們放在數組中並使用'in_array()'。 PS:isset呼叫在那裏(可能是多餘的)可疑。 – zerkms

+0

你能改說這個問題嗎?你想知道你的'$ category_id' * list *是否包含另一個* list *中的所有值? – Phil

+0

你從哪裏得到你的'category_id',我認爲這是用戶輸入,因爲他正在檢查它是否是'isset' :) –

回答

4

定義要檢查,然後使用in_array檢查是否使用其中的一個選項:

$categoryIds = array(1, 2, 5, 11); 
if (isset($categoryId) && in_array($categoryId, $categoryIds)) { 
    // some code here 
} 

通過這種方式,當您添加更多ID時,只有數組變大而不是代碼。

+0

太棒了,謝謝! –

0

使用此:

if (isset($category_id) && (($category_id == '1')||($category_id == '2')||($category_id == '5')||($category_id == '11'))) { 
some code here 
} 
+1

如果OP有像50 ...那麼該怎麼辦? 'in_array()'是一個很好的開始。 –

+0

我寫這個假設科羅列夫是一個PHP初學者。 –

+0

謝謝,我知道這種方法,但我有大約21個值。 –

0

switch()

例子:

<?php 
switch($category_id) { 
    case 1: 
     someCode(); 
     break; 
    case 2: 
     someCode(); 
     break; 
    default: 
     someCodeForIdsWhichAreNotOnAnyCase(); 
     break; 
} 
+0

我不認爲這是OP想要的。 – DontVoteMeDown

0

您可以設置arrayloopswitch/case聲明。

例如

$category_id = array('1','2','5','11'); 

for ($i = 0; $i < count($category_id); $i++) { 

switch ($category_id[$i]) { 
case ('1') : [CODE HERE]; break; 
case ('2') : [CODE HERE]; break; 
case ('5') : [CODE HERE]; break; 
case ('11') : [CODE HERE]; break; 
} 

}