我为每个循环都有这个:
foreach($downloads as $dl) {
echo seosvelniau2($dl['title']);
}
默认情况下,它给了我50个结果,有没有办法将这个foreach循环分成两个(1-25)和(26-50),所以我可以把它们分成两个单独的表列? 我知道,我可以制作循环,只显示前25个结果:
$i=0;
foreach($downloads as $dl) {
$i++;
echo seosvelniau2($dl['title']);
if ($i == 25)
break;
}
但如何进行第二次循环以显示(26-50)结果?
答案 0 :(得分:3)
您甚至可以在循环之前划分数组$downloads
。(使用array_chunk
)
$Chunks = array_chunk($downloads , 25);
foreach($Chunks[0] as $dl)
{
//Group 1
}
foreach($Chunks[1] as $dl)
{
///Group2
}
编辑:这是一个一般的例子:(如果你有超过50个元素)
$Chunks = array_chunk($downloads , 25);
foreach($Chunks as $oneChunk)
{
//New group of 25 elements.
foreach($oneChunk as $dl)
{
}
}
答案 1 :(得分:1)
两种不同的方法:
使用each迭代数组。
$i = 0;
while(list($id, $item) = each($array)) {
echo $item;
if (++$i == 25) { break; }
}
while(list($id, $item) = each($array)) {
echo $item;
}
如果在循环完成后你不需要那个数组,你可以简单地移动项目:
$i = 0;
while (++$i < 25 && count($array)) {
$item = array_shift($array);
echo $item;
}
foreach ($array as $item) {
echo $item;
}
答案 2 :(得分:0)
您可以在两者之间切换列:
$i = 0;
foreach ($downloads as $dl) {
if (++$i === 25) echo '</tr><tr>';
echo seosvelniau2($dl['title']);
}
答案 3 :(得分:0)
另一种选择:
$i=0;
foreach($downloads as $dl) {
$i++;
if ($i <= 25){
//first 25
}else{
//rest
}
}
答案 4 :(得分:0)
如果您正在制作HTML表格,并且需要切换td
,请执行以下操作:
for ( $i = 0; $i < count( $downloads ); $i++ )
{
echo seosvelniau2( $downloads[ i ][ 'title' ] );
if ( $i % 25 == 0 )
{
echo( '</td><td>' );
}
}
这将每25个值创建一个新列。
答案 5 :(得分:0)
您是不是只使用普通的for
循环代替foreach
?然后,您可以手动确定起点和终点like so.
然后你应该或多或少地拥有这样的东西:
for ($i=1; $i<=25; $i++)
{
echo "The number is " . $i . "<br />";
}
for ($i=26; $i<=50; $i++)
{
echo "The number is " . $i . "<br />";
}