比较if语句php的数组值

Liv*_*eEn 1 php

我有一个数组中的名字詹姆斯、史蒂夫、曼森、查尔斯的列表,我使用爆炸函数将它们分开。

 $pieces = explode(",", $full);

foreach ($pieces as $p ){

    $piece[]=$p;
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我可以访问变量

$piece[0];
$piece[1];
Run Code Online (Sandbox Code Playgroud)

但顺序根据输入的不同而不同,因此我无法进行比较。有人可以建议如何设置值,以便我可以进行如下比较

 if ($piece==='manson'){
//do something;
}else{
//do something
}

 if ($piece==='steve'){
//do something;
}else{
//do something
}
Run Code Online (Sandbox Code Playgroud)

Phi*_*ord 5

$full = 'james,steve,manson,charles';
$pieces = explode(",", $full);
Run Code Online (Sandbox Code Playgroud)

使用循环

foreach($pieces as $p ) {
    // $p holds the name
    if($p==='manson') {
        //do something;
    } elseif($p==='steve') {
        //do something;
    } else {
        //do something
    }
}
Run Code Online (Sandbox Code Playgroud)

您也可以只检查数组中的名称而不是循环

if(in_array('steve',$pieces)) {
    echo 'We have Steve in the house';
}
Run Code Online (Sandbox Code Playgroud)

或者正如乔恩建议的那样使用开关

foreach($pieces as $p) {
    switch ($p) {
        case 'manson':
        case 'steve':
        case 2:
            echo "Fist pump for ".$p;
            break;
        default:
            echo "no fist in the air";
    }
}
Run Code Online (Sandbox Code Playgroud)