<?php
$a = $monitoring->getMonitoringServers();
if (in_array("192.168.100.253", $a))
echo "y";
else
echo "n";
?>
print_r($a)
收益:
Array (
[0] => stdClass Object ( [address] => 192.168.100.253 )
[1] => stdClass Object ( [address] => 192.168.100.253 )
)
这段代码有什么问题?答案永远不是!
答案 0 :(得分:2)
您的数组由对象组成,而不是字符串。
通过执行in_array("192.168.100.253", $a)
,您正在寻找$ a中的字符串"192.168.100.253"
,正如您在print_r上看到的那样 - 它位于对象内部。
答案 1 :(得分:1)
$flag = false;
foreach($a as $obj){
if($obj->address == "192.168.100.253"){
$flag = true;
break;
}
}
if($flag){
echo 'Y';
}
else{
echo 'N';
}
$ a是stdObjects数组,您将它们视为正常值。
您需要使用foreach循环来遍历$ a的每个元素。
答案 2 :(得分:0)
$a
var是一个对象,而不是一个数组。
有关也适用于对象的函数,请参阅http://www.php.net/manual/en/function.in-array.php#103983。
答案 3 :(得分:0)
简单的尝试dis
$ a = $ monitoring-&gt; getMonitoringServers();
if(!in_array(“192.168.100.253”,$ a-&gt;地址) 回声“y”;否则回声“n”; ?&GT; 你得到输出n