[英]How to iterate over an array of stdObject elements in PHP?
這是我需要通過foreach循環訪問的數據結構的print_r()版本:
stdClass Object
(
[DetailedResponse] => Array
(
[0] => stdClass Object
( ...
)
[1] => stdClass Object
(
...
現在,如何遍歷這些對象?
我可以感覺到我應該做這樣的事情:
$object->DetailedResponse[0];
$object->DetailedResponse[1];
但是我怎么把它放在foreach類型循環中呢!
似乎該obj中有多個對象。您可能需要做更多的foreach循環。此代碼應為您提供該obj中的第一個sessionId。
foreach ($detailedresponses as $detailedresponse) {
foreach ($detailedresponseas as $response) {
echo $response->sessionId;
}
}
運行以下代碼以更清晰的方式查看obj:
echo '<pre>'; print_r($detailsresponses); exit;
將“ $ detailedresponses”替換為正確的變量名稱,然后將其重新發布回此處,這樣會使內容更易於閱讀。
編輯
簽出此URL,我將測試數據放在那里: http : //pastie.org/1130373
我重新創建了您要獲取的對象,並在其中添加了注釋,以便您了解發生了什么:)
並且,您可以獲得以下屬性:
echo $object->DetailedResponse[0]->sessionId;
有一個很好的解決方案-有一個stdClass包含其他stdClases和數組
function cleanEveryElement($someStdClass) {
foreach ($someStdClass as &$property) {
if ($property instanceof stdClass || is_array($property)) {
$property = cleanEveryElement($property);
}
else {
// Perform some function on each element, eg:
$property = trim($property);
}
}
return $someStdClass;
}
很簡單。 您有一個所謂的php標准對象。 它可以像$object->property
語法一樣訪問php中的任何其他對象
因此,您可以通過以下方式對其進行迭代: foreach($object as $property)
或foreach($object as $prop_name => $prop_val)
,您可以在其中通過$object->$prop_name
foreach($object as $prop_name => $prop_val)
訪問屬性。
如果要保存一個類,以便以后再使用,則最好使用serialize
和unserialize()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.