[英]for each loop increment more than one in php
我有一個類在php中返回記錄數。 我用桌子來顯示這樣的名字
foreach($getArtist as $getArtist)
{
echo "<tr><td>".$getArtist['name']."</td></tr>";
}
這可以正常工作並在一行中顯示每個名稱
現在我想在一行中顯示3個名字
foreach($getArtist as $getArtist)
{
echo "<tr>";
echo "<td>".$getArtist['name']."</td>";
echo "<td>".$getArtist['name']."</td>";
echo "<td>".$getArtist['name']."</td>";
echo "</tr>";
}
但這顯示每個名稱3次,但是我需要在一行中顯示3個名稱,然后在另一行中顯示其他3個名稱,並在記錄完成循環完成時
解決這一問題的幾種方法。 一種方法是拆分/分塊數據行。
$rowSize = 3;
$rowsOfArtists = array_chunk($getArtists, $rowSize);
if ($youNeedYourTableBalanced) {
$rows = intval(ceil(count($getArtists) / $rowSize));
$paddedLength = $rows * $rowSize;
$paddedArtists = array_pad($getArtists, $paddedLength, ' ');
$rowsOfArtists = array_chunk($paddedArtists, $rowSize);
}
foreach ($rowsOfArtists as $artists)
{
echo "<tr>";
foreach ($artists as $getArtists)
{
echo "<td>" . $getArtist['name'] . "</td>";
}
echo "</tr>";
}
嘗試:
foreach (array_chunk($getArtist, 3) as $artists) {
echo '<tr>';
foreach (array_pad($artists, 3, array('name' => ' ')) as $artist) {
echo '<td>' . $artist['name'] . '</td>';
}
echo '</tr>';
}
編輯 : 快速將DaveRandoms修復程序插入Phils評論 ;)
這是另一種方法。 嘗試復習概述的每種方法,因為這是一項常見的編程任務,因此請確保您了解如何解決...
VAR $ctr = 0;
VAR $outLine = "";
foreach($getArtist as $getArtist)
{
$ctr = $ctr +1;
if ($ctr = 3)
{
echo "<tr>";
echo $outline;
echo "<td>".$getArtist['name']."</td>";
echo "</tr>";
$outline = "";
}
else
{
$outline = $outline . "<td>".$getArtist['name']."</td>";
}
}
if ($outline > "")
{
echo "<tr>";
echo $outline;
for ($i = $ctr; $i <= 3; $i++) {
echo "<td> </td>";
}
echo "</td>";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.