2016-07-29 4 views
0

Es tut mir leid für die dumme Suche, aber ich kann nicht verstehen, wie man eine Liste von Variablen erstellt, die in der if/else-Schleife verwendet werden. Ich habe eine Variable $ category_id und verschiedene Werte dieser Variable (1,2,3, etc). Ich möchte ein statment wie diesesWie erstellt man eine Liste von Variablen in PHP?

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

machen, aber ich brauche, um mehr Werte dieser Variablen wie

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

angeben Wie kann ich das tun?

+2

Setzen Sie sie in ein Array und verwenden Sie 'in_array()'. PS: Der 'isset'-Aufruf ist dort verdächtig (und wahrscheinlich redundant). – zerkms

+0

Können Sie das Problem umformulieren? Möchten Sie wissen, ob Ihre '$ category_id' * -Liste * alle Werte in einer anderen * list * enthält? – Phil

+0

Woher bekommst du deine 'category_id'? Ich glaube, das ist eine Benutzereingabe, da er überprüft, ob es' isset' ist. –

Antwort

4

die Optionen definieren Sie überprüfen möchten, dann in_array verwenden zu überprüfen, ob einer von ihnen verwendet wird:

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

Auf diese Weise wird beim Hinzufügen von mehr IDs nur das Array größer als der Code.

+0

Super, danke! –

0

verwenden:

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

was ist wenn das OP wie ... 50 hat? 'in_array()' ist bei weitem ein guter Anfang. –

+0

Ich schrieb dies unter der Annahme A Korolev ist ein Anfänger in PHP. –

+0

Danke, ich kenne diese Methode, aber ich habe ungefähr 21 Werte. –

0

switch()

Beispiel:

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

Ich glaube nicht, dass das das ist, was OP will. – DontVoteMeDown

0

Sie können eine array und eine loop und eine switch/case Anweisung einrichten.

z.B.

$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; 
} 

} 
Verwandte Themen