PHP 在字符串数组中查找子字符串

nde*_*cca 1 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'];
Run Code Online (Sandbox Code Playgroud)

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

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

function test($substring, $array){

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

然后叫它..

if (test('H-k',$historicalFullList)){
    do stuff...
}
Run Code Online (Sandbox Code Playgroud)

Maa*_*aar 5

将您的 return false 移出 foreach,否则如果它不包含$substr.

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

另外,将针头和干草堆换成 strpos。