2016-07-29 49 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; 
} 

}