php5脚本升级-foreach内部的foreach

php5脚本升级-foreach内部的foreach,php,foreach,Php,Foreach,我正在尝试将一个脚本从PHP4升级到PHP5,但我在foreach上遇到了一个问题。我在网上查过了,没有找到适合我脚本的东西 基本上,问题在于第9行的$filmid和第13行的$event['venueID']未被识别,数组返回空。 我可以通过给$filmid和$event['venueID']赋值来实现这一点,但显然这完全违背了这一点 那么基本上,我如何重写这些脚本才能正常工作呢? 如果($event['titleID']=$filmid){ 和 如果($VICENT['venueID']=$

我正在尝试将一个脚本从PHP4升级到PHP5,但我在foreach上遇到了一个问题。我在网上查过了,没有找到适合我脚本的东西

基本上,问题在于第9行的
$filmid
和第13行的
$event['venueID']
未被识别,数组返回空。 我可以通过给
$filmid
$event['venueID']
赋值来实现这一点,但显然这完全违背了这一点

那么基本上,我如何重写这些脚本才能正常工作呢? 如果($event['titleID']=$filmid){ 和 如果($VICENT['venueID']=$event['venueID'])){

以下是我正在使用的数据:

<listing>
<venueList>
<venue venueID="vxappfil">
</venue>
</venueList>
<titleList>
<title titleID="txgrewhi3">
<titleName>The Great White Silence</titleName>
</title> 
</titleList>
<eventList>
<event titleID="txgrewhi3" venueID="vxappfil">
<startDate>03/08/2012</startDate>
<endDate>09/08/2012</endDate>
<times>Sun 19:00</times>
</event>
</eventList>
</listing>

白色的寂静
03/08/2012
09/08/2012
星期日19:00
代码如下:

foreach ($thisweeksxml->titleList->title as $title) {
    $filmid = $title['titleID'];
    ......


    $thiweekscinemasnamesarray = array();
    foreach ($thisweeksxml->eventList->event as $event) { 

        if($event['titleID'] == $filmid ){

            foreach ($thisweeksxml->venueList->venue as $venue) {

                if($venue['venueID'] == $event['venueID']){


                    $cityname = strtolower(str_replace ($removeChars, "", $venue->venueAddress->town));
                    $venuname = strtolower(str_replace ($removeChars, "", $venue->venueName));
                    $thiweekscinemasnamesarray[] = ("- <a href='/cinema/".$cityname."-".$venuname.".html'><font size='-2' style='line-height:15pt'>".$venue->venueAddress->town.", ".$venue->venueName."</font></a>");

                }

            }   

        }

    }

    sort($thiweekscinemasnamesarray);
    foreach($thiweekscinemasnamesarray as $lastweek){

    $bodycontent .="".$lastweek."<br>";

}
foreach($thisweeksxml->titleList->title as$title){
$filmid=$title['titleID'];
......
$thiweekscinemansarray=array();
foreach($thisweeksxml->eventList->event as$event){
如果($event['titleID']==$filmid){
foreach($thisweeksxml->venueList->venue as$venue){
如果($VICENT['venueID']=$event['venueID'])){
$cityname=strtolower(str_替换($removeChars,“,$venue->venueAddress->town));
$venuname=strtolower(str_替换($removeChars,“,$venue->venueName));
$thiweekscinemansarray[]=(“-”);
}
}   
}
}
排序($thiweekscinemaseray);
foreach($ThiweeksCinemasarray为$lastweek){
$bodycontent.=''.$lastweek.
“; }
您在最后一个foreach循环中缺少了一个}

这里没有足够的信息可以处理,但我猜您作为数组访问的变量实际上是对象

因此,我建议改变:

$event['titleID']
进入


如果这行得通,那就太好了。如果不行,那么您需要向我们展示更多关于
$thisweeksxml
结构的信息,方法是提供
var\u dump($thisweeksxml)
print\r($thisweeksxml)
(将其编辑为原始问题)

您能做var\u导出($thisweeksxml)吗;然后将结果发布到这里,这样我们就可以处理了?标题列表->标题是数组吗?$thisweeksxml是我们服务器上加载的一个简单XML文档。下面是一个示例:标题列表->标题不是数组,它是文件中的一个条目,您说您要升级到PHP5,但您从中升级什么?XML可以更改,这将改变simplexmlelement对象。所以你不能在那里有这些属性/数组项。首先检查它们。假设他在问题中说“…数组返回空”,我可以假设代码至少为他运行,这就排除了实际问题。(我猜当他将代码转录到问题中时,这是复制+粘贴错误)用于PHP4的代码非常好,我只是忘记了}当我复制它们时。我知道我不能在带有PHP5的foreach中使用foreach。我就是不知道如何重写这段代码。@user1595256-当然你可以在PHP5中使用嵌套的foreach循环。到底是谁告诉你不能的???以下是提要的结构:大白沉默U 03/08/2012 09/08/2012 Sun 19:00@user1595256-请编辑问题以包含该数据;这样阅读会容易得多。
$event->titleID