从数组中读取但无法找到匹配项

时间:2015-05-03 07:15:25

标签: php arrays

我有一个数组$result,如下所示:

array(1) {
  [0]=>
  string(32) "24:no peer certificate available"
}

我正在尝试使用以下内容在数组中查找匹配但不起作用:

if (in_array("no peer certificate available", $result)) {
    echo "no peer available";
    } else { echo "peer is available"; }
}

2 个答案:

答案 0 :(得分:2)

in_array仅在您尝试搜索的needle字符串在haystack(数组)中具有完全匹配时才有效。

24:no peer certificate available
if (in_array("no peer certificate available", $result)) {

作为替代方案,如果您尝试仅搜索该针的一部分并检查这些元素,则可以使用strpos

$result = array(
    '24:no peer certificate available'
);

$found = false;
foreach($result as $value) {
    if(strpos($value, 'no peer certificate available') !== false) {
        $found = true;
        break;
    }
}

echo ($found) ? 'peer is available' : 'no peer available';

答案 1 :(得分:1)

让触发器开心,我的字符串丢失了我正在寻找的部分..将24:添加到我的搜索中并且代码有效。

@Ghost也确认无法搜索字符串的一部分,应该是完整的字符串。