PHP 5中嵌套的foreach循环

时间:2013-07-07 20:14:13

标签: php xml-parsing foreach simplexml php-5.2

所以这是交易:

我有一个数组,其中包含智能手机的制造商名称和一个包含每个特定手机规格的XML文件。

我要做的是根据制造商对手机进行分组。我正在使用嵌套的FOREACH循环来执行此操作。这是我的代码:

    foreach ($makes as $manufacturer){
        echo '<div>'.'<h2>'.$manufacturer.'</h2>'.'<hr>';
        foreach ($xml as $item){
            if($item->make == $manufacturer){
                $src = $item->thumb;
                echo '<div>'."<img src='$src' width='100'/>".'<h1>'.
                        $item->make.' '.$item->model.'</h1>'.'</div>';
            }
         }  
         echo '</div>';
     }

这种方法的问题在于,出于某种原因,我的页面只显示每个制造商的第一部手机,而不是通过每个型号。

我在这里做错了什么?

以下是XML示例:

<?xml version="1.0" encoding="utf-8"?>
<items>
    <item>
       <make></make>
       <model></model>
       <thumb></thumb>
    </item>
</items>

此外,如果我删除外部循环,代码可以正常工作并显示XML中的每个手机

1 个答案:

答案 0 :(得分:0)

你有一个错字:

echo '<div>'."<img src='$src' width='100'/>".'<h1>'.
$item->make.' '.$item->model.'</h1>'.

应该是

echo '<div>'."<img src='$src' width='100'/>".'<h1>'.
$item->make.' '.$item->model.'</h1>';

注意“;”在回声结束时。