$meal_type= "Free Breakfast|Free Wireless";
if ($meal_type != '' && $meal_type !='None') {
$meal = explode('|', $meal_type);
$meal = array_search('Breakfast',$meal);
$meal = $meal_type;
} else {
$meal= 'No Breakfast';
}
echo $meal;
这是我的代码。在这里,我想在数组中搜索Breakfast
并返回搜索值,如果找不到,则返回No Breakfast
。
在这里,我被|炸开了要排列的字符串。符号和返回的数组搜索早餐(如果存在)返回资金数组值,否则回显否早餐值。
答案 0 :(得分:3)
一个简单的foreach()
就可以了:-
<?php
$match_counter =0;
$array = Array
(
0 => 'Free Breakfast',
1 => 'Free Wireless Internet'
);
$search = 'Breakfast';
foreach($array as $arr){
if(stripos($arr,$search) !==false){
echo $arr.PHP_EOL;
$match_counter++;
}
}
if($match_counter ==0){
echo 'No '.$search;
}
输出:-
https://3v4l.org/NTH1W(发现多次)
参考:-stripos()
答案 1 :(得分:2)
<?php
$array = array('Free Breakfast','Free Wireless Internet');
$string = 'Breakfast';
foreach ($array as $a) {
if (stripos($a, $string) !== FALSE) {
echo $string;
return true;
}
}
echo "No" .$string;
return false;
?>
您也可以使用stripos()
区分大小写。
情况1:如果数组包含多个相同的值
<?php
$array = array('Free Breakfast','Free Wireless Internet' ,'breakfast time');
$string = 'Breakfast';
$flag=true;
foreach ($array as $key=> $a) {
if (stripos($a, $string) !== FALSE) {
$flag = false;
echo $string." contain in key position ".$key.'<br>';
//return true;
}
}
if($flag)
{
echo "No" .$string;
}
?>