2013-07-24 25 views
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)。從兩個stdObject陣列

在上述結構中,該命令是用於response將是相同的,因爲它是在responseheader(即ID_2總會來id_1後)

我想從responsecontent每個id存在responseheader。我將迭代responseheader對象。

我可以遍歷response並逐步裏面添加responseheader存儲content另一個屬性(比如dummy),但有沒有更好的,更快的方法嗎?

回答

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); 

如果響應內容可以包含你有一個以上的內容,以循環throught它:

foreach($data['response'][$row['id']]['content'] as $content) { 
    $result[] = $content; 
} 
+0

感謝。每個'id_ *'對象下只有一個'content'。 有什麼方法可以將內容添加到'responseheader'中相應的'id'?還有很多其他的領域,所以我會迭代'responseheader'。 –

+0

是的。只需將它添加到'$ row'而不是結果數組。 –