【发布时间】:2012-04-19 04:13:35
【问题描述】:
您好,我正在使用 wordpress 创建一个电影博客。我使用带有自定义文本框的序列化数据创建了电视剧集。我的问题是,当我对数据进行反序列化时,我希望它显示季节、集数和情节。然而,由于多集将有相同的季节,我不希望重复的季节编号显示多次。我使用 if 语句来完成这项工作;但是有时我会得到重复的季节,就好像它是完全相同的两个不同的数字一样。为了确保空格或任何东西不是人为错误,我使用带有数字的列表框输入季节编号。不幸的是我仍然有这个问题。
foreach ($data as $item):
if ($item['season'] !== $old_season) {
echo '<ul class="panel"><h2 class="title">Season '. $item['season'].'</h2>'.
'<li><h2>'.stripslashes(base64_decode($item['title'])).'</h2>'; $old_season = $item['season'];}
echo '<p>Episode'. $item['number']. 'Aired'.stripslashes(base64_decode($item['airdate'])).'</p>'
.'<p>'.stripslashes(base64_decode($item['plot'])).'</p></li>';
endforeach
任何帮助将不胜感激!
【问题讨论】:
-
发送
var_dump($data)并在此处发布结果。 -
@Craig 我想唯一剩下的就是在循环的每次迭代中使用 var_dump 并检查这些值到底是什么。其实
$data进来的顺序是什么?鉴于您的 var_dump,第 18 季的标题将被打印两次,因为第 2 季位于第 18 季所有剧集的中间。 -
@RJHill 你是对的!看来排序是问题所在。它是按集数而不是季数排序的。仍然对重复的季节如何能够通过我的 if 语句感到困惑。
-
@Craig,因为按照您的设置方式,它只有在所有季节都井井有条的情况下才能工作。它在结尾将 $old_season 设置为当前季节,因此如果我们只查看该变量,您会看到一堆不会重复的第 18 季,但随后出现 2 并且 $old_season 设置为 2,因此,当下一个第 18 季到来时,它与第 2 季不匹配并再次弹出......
-
@Craig 这是因为
$old_season在 if 语句中不断被覆盖,抹去了之前打印过第 18 季的事实。
标签: php wordpress serialization comparison