在使用逗号将单个字符串拆分为数组后,我遇到检查字符串是否存在于数组中的问题。它在我的代码中不断返回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.
}
}
?>
答案 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');
}
?>