如何将多个参数转换为PHP条件if语句


How to translate multiple parameters to a PHP conditional if statement

假设我有以下url: example.php?grab=1,3&something=...

grab有两个值,我如何将其转换为条件if语句。例如,如果count是一个变量,而您想要计算count是否等于grab中的一个值。

$grab = $_GET["grab"];
$count = 4;
if($count == $grab(values)) {
alert("True");
}

如果始终是,粘合值,只是explode它们,那将它们变成array。然后使用您的常驻数组函数进行检查。在这个例子中,in_array:

if(!empty($_GET['grab'])) {
    $grab = $_GET["grab"];
    $count = 4;
    $pieces = explode(',', $grab);
    if(in_array($count, $pieces)) {
        // do something here if found
    }
}

旁注:如果你想把你的url设计成这样:

example.php?grab[]=1&grab[]=3&something

你根本不需要引爆它。你可以直接获取这些值,然后直接使用in_array

上面的例子grab已经返回了一个数组:

if(!empty($_GET['grab'])) {
    $grab = $_GET["grab"];
    $count = 4;
    if(in_array($count, $grab)) {
        // do something here if found
    }
}

方法#1:重新格式化URL并使用PHP in_array()

为什么不重新格式化你的url像这样:example.php?grab[]=1&grab[]=3&something=...自动返回grab值作为一个数组在PHP?

然后像这样做:

if(isset($_GET['grab']) && in_array(4, $_GET['grab'])) {
    // do something
}

方法#2:将字符串分割成数组并使用PHP in_array()

如果你不希望重新格式化你的url,然后简单地分割字符串成一个数组使用php的爆炸函数,检查是否存在的值,例如:

if(isset($_GET['grab'])) {
    $grab_array = explode(",", $_GET['grab'])
    if(in_array(4, $grab_array)) {
        // do something
    }
}

方法3:使用正则表达式

您也可以使用正则表达式来检查匹配