2014-12-19 84 views
0

我已經使用foreach循環創建一個數組,並將結果循環這樣訪問從多維陣列內的不同陣列的值:使用foreach

array(8) { 
    [0]=> array(3) { 
     ["shortdesc"]=> object(SimpleXMLElement)#63 (1) {...} 
     ["longdesc"]=> object(SimpleXMLElement)#58 (1) {...} 
     ["price"]=> object(SimpleXMLElement)#64 (1) {...} 
    } 
    [1]=> array(3) { 
     ["shortdesc"]=> object(SimpleXMLElement)#67 (1) {...} 
     ["longdesc"]=> object(SimpleXMLElement)#62 (1) {...} 
     ["price"]=> object(SimpleXMLElement)#68 (1) {...} 
    } 
    (...) 
} 

使用該陣列,並且低於一個foreach:

foreach ($optionsArray as $innerArray) { 
    foreach ($innerArray as $value) { 
    echo "<li>$value</li>"; 
    } 
} 

我可以回顯數組的所有內容,但我希望能夠將不同的數組部分分配給變量。

所以:

foreach ($optionsArray as $innerArray) { 
    foreach ($innerArray as $value) { 
    echo "<li>$value->price $value->longdesc</li>"; 
    } 
} 

我知道$值不是一個對象,但我怎麼能做到什麼,我找?謝謝。

+0

爲什麼使用內'foreach'循環? – 2014-12-19 11:14:14

+0

我認爲創建陣列時出現問題。我想知道爲什麼數據被分解成不同的對象。你可以在創建這個數組的地方顯示代碼嗎? – LucasF 2014-12-19 11:23:33

+0

嚴格說話'$ value'是一個** SimpleXMLElement **類型的對象,所以它是一個對象。只是在字符串中使用或者使用echo等,它會自動轉換爲字符串。只是FYI。您可以通過閱讀以下PHP手冊中的SimpleXML教程來獲益:[基本SimpleXML用法](http://php.net/manual/en/simplexml.examples-basic.php) - 它涵蓋了您詢問的內容以及一些更好的提示。 – hakre 2014-12-19 14:32:26

回答

1

無需使用innerArray foreach循環,只是儘量給下面的代碼:

0
foreach ($optionsArray as $innerArray) 
{ 
    echo "<li>" . $innerArray['price'] . " " . $innerArray['longdesc'] . "</li>"; 
} 
1

嘗試這樣的事情

foreach ($optionsArray as $innerArray) { 
    $object = (object) $innerArray; 
    echo $object->price; 
}