PHP:列出了两个列列表

时间:2013-09-11 14:16:33

标签: php html list

我正在网上列出一些电影,以便用户可以选择最好的电影。

我按类型对它们进行分类。

但是每种类型下的列表都太长了,我想制作两列标题。

每列中的电影数量取决于类型。

所以我的代码现在就是这样:

$i = 1;
echo "<ul>";
foreach($arrayMovies  as $k=>$v) 
{
echo  "<li><input type=\"checkbox\" id=\"flat-$i\" name=\"$genre-$i\" value=\"$k\">
 <label for=\"flat-$i\">$v</label></li>";
 $i++;
} 
echo "</ul>";

这段代码显示了很长的列表,就像戏剧一样:

Forest Gump

小时

Mullholand Drive

泰坦尼克号

让我们说,对于戏剧类型我每列需要两个标题:

<ul>
<li> Forest Gump</li>
<li> The Hours</li>
</ul>
 <ul>
<li> Mullholand Drive</li>
<li> Titanic</li>
</ul>

如何使用我的代码实现这一点?

我可以通过使用css实现第二列,我只需要在两个标题之后使用新的<ul>

请注意,每列两个标题中的第二个是动态数字*

*我会计算每个类型每个标题有多少行可以得到一个总数,然后我会做一半来获得每列的标题数(每个类型的标题数是偶数)< / p>

非常感谢!

2 个答案:

答案 0 :(得分:1)

只需在迭代的一半插入UL个标记:

$arrayMovies = array( 'Forest Gump', 'The Hours', 'Mullholand Drive', 'Titanic', 'The Intouchables' );
$arrayMoviesCount = count( $arrayMovies );

echo '<ul>';
for( $i = 0; $i < $arrayMoviesCount; $i++ )
{
    if( ceil( $arrayMoviesCount / 2 ) == $i )
    {
        echo '</ul><ul>';
    }
    echo sprintf( '<li>%s</li>', $arrayMovies[$i] );
}
echo '</ul>';

输出上述代码:

<ul>
    <li>Forest Gump</li>
    <li>The Hours</li>
    <li>Mullholand Drive</li>
</ul>
<ul>
    <li>Titanic</li>
    <li>The Intouchables</li>
</ul>

具有奇数条目的列表需要ceil;使用ceil将导致第一个列表中有一个条目更多。如果应在第二个列表中显示其他(非偶数)条目,则可以将ceil替换为floor

答案 1 :(得分:0)

对于之前的回答,我很抱歉,我不明白你想要做什么。

如果问题是:“我想对电影进行分类”,则改为使用关联数组。

另外,如果你只是想用两种颜色显示两部电影,我建议你这样做:

$i = 1;
$flagCounter = 0;
echo "<ul>";
foreach($arrayMovies  as $k=>$v) 
{
if ($flagCounter != 2) {
   echo  "<li><input type=\"checkbox\" id=\"flat-$i\" name=\"$genre-$i\" value=\"$k\">
 <label for=\"flat-$i\">$v</label></li>";
 $i++;
   $flagCounter++;
}
else {
   echo "</ul><ul>";
   echo  "<li><input type=\"checkbox\" id=\"flat-$i\" name=\"$genre-$i\" value=\"$k\">
 <label for=\"flat-$i\">$v</label></li>";
 $i++;
   $flagCounter = 1;
}

} 
echo "</ul>";

说实话,我真的不相信这个解决方案,这只是一个解决方案。如果您对更好的结构感兴趣,请尝试使用具有如下结构的关联数组:

$yourArray = array ( "Category" => array ("movie1","movie2") [and so on...] );

通过这种方式,您将能够更清楚地显示所有内容,并能够访问这两部电影和类别!

另外,为什么选择使用列表而不是表来显示这些?

而且......变量$genre来自何处?这是你的所有代码还是什么?如果没有,你能否告诉我们阵列的结构?