1
[responseheader] => Object (
    Array ( 
        [0] =>  Object ( 
            [id] => id_1 
            [name] => abc 
        )
        [1] => Object ( 
            [id] => id_2 
            [name] => xyz 
        ) 
    ) 
) 
[response] => Object ( 
    [id_1] => Object ( 
        [content] => Array ( 
            [0] => content_1 
            ) 
        ) 
    [id_2] => Object ( 
        [content] => Array ( 
            [0] => content_2
        )
    )
)

以上 2 个对象,responseheaderresponse在一个对象 ( header) 之下。

在上述结构中,for 的顺序与 . 中的顺序response相同responseheader。(即 id_2 总是在 之后id_1

我想content从. response_ 我将迭代对象。idresponseheaderresponseheader

我可以循环并逐步在存储中response添加另一个属性(例如dummy),但是有没有更好、更快的方法?responseheadercontent

4

1 回答 1

1

这应该可以解决问题。

$result = array();
//loop through responseheader array
foreach($data['responseheader'] as $row)
{
    //if the id exists in the response array add it to the result array
    if(array_key_exists($row['id'], $data['response'])) {
        $result[] = $data['response'][$row['id']]['content'][0];
    }
}
print_r($result);

如果响应的内容可能包含多个内容,则必须将其循环到:

foreach($data['response'][$row['id']]['content'] as $content) {
    $result[] = $content;
}
于 2013-07-24T19:14:17.870 回答