我有一个名字列表james,steve,manson,charles in a array,我使用explode函数来分隔它们。
$pieces = explode(",", $full);
foreach ($pieces as $p ){
$piece[]=$p;
}
我遇到的问题是我可以访问变量
$piece[0];
$piece[1];
但是顺序根据输入的不同而不同,因此我无法进行比较。有人可以建议如何设置值,以便我可以进行比较,如下所示
if ($piece==='manson'){
//do something;
}else{
//do something
}
if ($piece==='steve'){
//do something;
}else{
//do something
}
答案 0 :(得分:4)
$full = 'james,steve,manson,charles';
$pieces = explode(",", $full);
使用循环
foreach($pieces as $p ) {
// $p holds the name
if($p==='manson') {
//do something;
} elseif($p==='steve') {
//do something;
} else {
//do something
}
}
你也可以只检查数组中的名称而不是循环
if(in_array('steve',$pieces)) {
echo 'We have Steve in the house';
}
或Jon建议使用开关
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";
}
}