PHP如果字符串存在于数组中

时间:2017-05-07 13:18:46

标签: php arrays string

在使用逗号将单个字符串拆分为数组后,我遇到检查字符串是否存在于数组中的问题。它在我的代码中不断返回false。有人可以告诉我在我的代码中我做错了吗?

<?php

$myString = "10.0.0.1 , IP: 10.0.0.2 Date: 05/07/2017 , IP: 10.0.0.3 Date: 05/07/2017";
$IPS = explode(' , ', $myString); 
$string = "10.0.0.2 Date: 05/07/2017";

foreach ($IPS as $IP) 
{
if(in_array($string, $IP))
    {
        die('YES');
    }
    else
    {
        die('NO'); // keeps returning no when the $string is in the array.

    }
}

?>

2 个答案:

答案 0 :(得分:2)

您的代码有两个错误。第一个$ IP是字符串而不是数组,所以你的is_array不合适。第二,当第一个元素没有$ string时,带有退出的进程(“NO”),则剩余代码将不会执行。

检查 live demo

<?php

$myString = "10.0.0.1 , IP: 10.0.0.2 Date: 05/07/2017 , IP: 10.0.0.3 Date: 05/07/2017";
$IPS = explode(' , ', $myString); 
$string = "10.0.0.2 Date: 05/07/2017";

foreach ($IPS as $IP) 
{
if(strpos($IP, $string) !== FALSE)
    {
        die('YES');
    }
}
die('NO');

答案 1 :(得分:1)

也许您想使用strpos而不是循环遍历数组

<?php

$myString = "10.0.0.1 , IP: 10.0.0.2 Date: 05/07/2017 , IP: 10.0.0.3 Date: 05/07/2017";
$string = "10.0.0.2 Date: 05/07/2017";

if(strpos($myString, $string))
    {
        die('YES');
    }
    else
    {
        die('NO');
    } 

?>