2013-08-27 40 views
0

我的页面中有这个小小的搜索功能; $ searchWord是我需要在我的数组中查找的单词。 阵列看起来有点像这样:对象数组Array_search

stdClass Object ( 
[ActionScopeId] => 181365 
[DateChanged] => 0001-01-01T00:00:00 
[DateCreated] => 2013-08-20T13:59:33.053 
[Description] => Snelheid test 
[MessageCode] => C0000448220 
) 
stdClass Object ( 
[ActionScopeId] => 181364 
[DateChanged] => 0001-01-01T00:00:00 
[DateCreated] => 2013-08-14T10:08:50.707 
[Description] => Test 
[MessageCode] => C0000448219 
) 

现在,例如;我想查找“测试”一词。找到它后,我想打印ActionScopeId和DateCreated。

这是我的代码:

$roc = array('relation' => $_SESSION['username']); 
$rocresponse = $wcfclient->ReadOpenCalls($roc); 
foreach ($rocresponse->ReadOpenCallsResult as $key => $value){ 
    foreach ($value as $key1 => $value1){ 
    if (array_search($searchWord,$value1)){ 
     echo $value1->ActionScopeId; 
    } 
    } 
} 

但是,结果我得到的总是空的。我究竟做错了什么?


我固定它,试图寻找到一个对象您可以使用此功能时:

function in_object($val, $obj){ 

    if($val == ""){ 
     trigger_error("in_object expects parameter 1 must not empty", E_USER_WARNING); 
     return false; 
    } 
    if(!is_object($obj)){ 
     $obj = (object)$obj; 
    } 

    foreach($obj as $key => $value){ 
     if(!is_object($value) && !is_array($value)){ 
      if($value == $val){ 
       return true; 
      } 
     }else{ 
      return in_object($val, $value); 
     } 
    } 
    return false; 
} 

,然后寻找它以这样的方式

if (in_object($searchWord,$value)){ 
+0

认沽'print_r'的找出你开始失去你的数据... –

+0

$值1的照片是我显示在顶部的阵列,没有array_search()它也显示了$ value1-> ActionScopeId等的值。 – Matheno

+1

是的,你去了。 'array_search'在数组中搜索,但是'$ value1'实际上是一个对象。 (如果我没有弄错) –

回答

0

我通过使用此功能固定此:

function in_object($val, $obj){ 

if($val == ""){ 
    trigger_error("in_object expects parameter 1 must not empty", E_USER_WARNING); 
    return false; 
} 
if(!is_object($obj)){ 
    $obj = (object)$obj; 
} 

foreach($obj as $key => $value){ 
    if(!is_object($value) && !is_array($value)){ 
     if($value == $val){ 
      return true; 
     } 
    }else{ 
     return in_object($val, $value); 
    } 
} 
return false; 

,然后寻找它以这样的方式

if (in_object($searchWord,$value)){}