PHP在String Array中查找子串

时间:2017-03-13 20:19:36

标签: php arrays string

我有以下数组:

$historicalFullList = ['Fecha','H-kWH-Total','H-kWH-Pico','H-kWH-Resto','H-kWH-Valle','H-Acum-Pico','H-Acum-Resto','H-Acum-Valle','H-Fecha-Pico','H-Fecha-Resto','H-Fecha-Valle','H-kW-Pico','H-kW-Resto','H-kW-Valle','H-kVARH-Total','error','factMult','H-kW-Pico-C','H-kW-Resto-C','H-kW-Valle-C'];

我想创建一个函数来查找数组中是否存在子字符串'H-k'。 (在此示例数组中,它应返回TRUE)

由于某种原因,以下代码不起作用。有更好的方法吗?

function test($substring, $array){

    foreach ($array as $item){
        if (strpos($substring, $item)!== false){
            return true;
        }else{
            return false;
        }
    }
}

然后叫它..

if (test('H-k',$historicalFullList)){
    do stuff...
}

1 个答案:

答案 0 :(得分:4)

将你的返回false移出foreach,否则如果它不包含$substr,它将在第一次比较后返回false。

function test($substring, $array){
    foreach ($array as $item){
        if (strpos($item,$substring)!== false){
            return true;
        }
    }
    return false;       
}

此外,将针和大海捞针交换为strpos。