使用foreach从多维数组中访问不同的数组值

时间:2014-12-19 11:11:06

标签: php arrays 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>";
  } 
}

我知道$ value不是一个对象,但我怎么能做我想要的呢?感谢。

3 个答案:

答案 0 :(得分:1)

尝试这样的事情

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

答案 1 :(得分:1)

  

无需使用 innerArray foreach循环,只需尝试下面的代码:

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

答案 2 :(得分:0)

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