2011-06-08 71 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獲得輸出正