在数组中搜索特定值并返回值

时间:2019-01-02 07:16:06

标签: php arrays

$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

在这里,我被|炸开了要排列的字符串。符号和返回的数组搜索早餐(如果存在)返回资金数组值,否则回显否早餐值。

2 个答案:

答案 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/ogOEB(已发现)

https://3v4l.org/AOuTJ(未出现)

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;
}



?>