#php
#php
Вопрос:
у меня есть список имен james, steve, manson, charles в массиве, и я использую функцию 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
}
Комментарии:
1. Похоже, вы ищете
switch
?
Ответ №1:
$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';
}
или, как предложил Джон, используя переключатель
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";
}
}
Комментарии:
1. оператор foreach if повторял то же содержимое, но опция in_array работала отлично.. Большое вам спасибо…