私のページにはこの小さな検索機能があります。$searchWord は、配列内で探す必要のある単語です。配列は次のようになります。
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)){