如何解决PHP for loop 按数量升序显示条目
由于 for 函数,第二个 foreach 函数在每 <td>
个 x 次中显示。
必须将第二个 foreach 替换为什么,以便每个 <td>
只显示一次?
echo '<div class="responsive">';
echo '<table class="table">';
echo '<thead>';
echo '<tr>';
echo '<th>Bestellung #</th><th>Lieferant</th><th>Vsl. WE</th>';
echo '</tr>';
echo '<tbody>';
foreach($arr->entries as $order => $value) {
echo '<th scope="row">' . $value->id . '</th>';
echo '<td scope="col">' . $value->contactSender->accounts[0]->companyName . '</td>';
for ($i = 0; $i <= $arr->totalsCount; $i++) {
foreach($arr->entries[$i]->dates as $order => $value) {
if($value->typeId == 11) echo '<td scope="col">' . $value->date . '</td>';
}
echo '</tr>';
}
}
echo '</table>';
echo '</div>';
解决方法
for
循环在 $arr->entries
上进行迭代,因此您正在将该数组中的每个元素相互交叉。只需使用迭代 foreach
数组的第二个 dates
循环。
另外,不要在嵌套循环中重复使用 $value
迭代变量。在这里似乎没有造成任何问题,但令人困惑。
echo '<div class="responsive">';
echo '<table class="table">';
echo '<thead>';
echo '<tr>';
echo '<th>Bestellung #</th><th>Lieferant</th><th>Vsl. WE</th>';
echo '</tr>';
echo '<tbody>';
foreach($arr->entries as $value) {
echo '<th scope="row">' . $value->id . '</th>';
echo '<td scope="col">' . $value->contactSender->accounts[0]->companyName . '</td>';
foreach($value->dates as $value2) {
if($value2->typeId == 11) echo '<td scope="col">' . $value2->date . '</td>';
}
echo '</tr>';
}
echo '</table>';
echo '</div>';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。