2011-06-08 87 views
1
<?php 
    $a = $monitoring->getMonitoringServers(); 
    if (in_array("192.168.100.253", $a)) 
     echo "y"; 
    else 
     echo "n"; 
?> 

print_r($a)产量:PHP的in_array结果总是一样的。

Array (
    [0] => stdClass Object ([address] => 192.168.100.253) 
    [1] => stdClass Object ([address] => 192.168.100.253) 
) 

有什么不对的代码?答案永远不是!

+1

请提高的问题title,它并没有真正说出任何东西 – 2011-06-08 11:12:21

回答

2

您的数组由对象组成,而不是字符串。

通过做in_array("192.168.100.253", $a)您正在寻找$ a中的字符串"192.168.100.253",正如您在print_r中看到的 - 它在一个对象内部。

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的每个元素。

0

其简单尝试DIS

$ a = $监控 - > getMonitoringServers();

如果(in_array( “192.168.100.253”,$ A->地址) 回声 “Y!”;其他回声 “N”;?> UL获得输出正