我正在尝试将脚本从PHP4升级到PHP5,而且我遇到了foreach的问题。我已经在线查看,但找不到适用于我脚本的任何内容。
基本上,问题是第9行的$filmid
和第13行的$event['venueID']
无法识别,数组返回空。
我可以通过为$filmid
和$event['venueID']
分配值来使其工作,但显然这完全违背了这一点。
基本上,我如何重写这些脚本才能使用? if($ event ['titleID'] == $ filmid){ 和 if($ venue ['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>
以下是代码:
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>";
}
答案 0 :(得分:0)
你在最后一个foreach循环中错过了一个}
答案 1 :(得分:0)
这里没有足够的信息可供使用,但我的猜测是你作为数组访问的变量实际上是对象。
因此我建议改变:
$event['titleID']
到
$event->titleID
如果这样有效,那很好。如果它不起作用,那么您需要通过提供$thisweeksxml
或var_dump($thisweeksxml)
的输出向我们展示有关print_r($thisweeksxml)
结构的更多信息。 (将其编辑成原始问题)