Есть ли способ определить последнюю итерацию цикла foreach и реализовать какой-то другой код?Захватить последнюю итерацию цикла foreach (где последняя итерация должна отличаться)
Я пытаюсь выполнить итерацию по массиву и вывести его части в таблицу.
Вот пример моего массива:
array(2) {
[0]=> array(3) {
[date]=> string(10) "2013-09-18"
[title]=> string(75) "Ready For Retina HD: Create Pixel-Perfect Assets For Multiple Scale Factors"
[filepath]=> string(74) "ready-for-retina-hd-create-pixel-perfect-assets-for-multiple-scale-factors"
}
[1]=> array(3) {
[date]=> string(10) "2010-10-20"
[title]=> string(40) "Taking A Closer Look At Tech Conferences"
[filepath]=> string(40) "taking-a-closer-look-at-tech-conferences"
}
}
Для каждой части, я хочу, чтобы вывести title
, то я хочу, чтобы вывести filepath
в качестве связующего звена, в двух разных местах (один раз это " просмотреть ", а другой - ссылку" изменить ").
Мне нужно пробежать массив и сделать каждый из этих трех элементов в строку таблицы, поэтому я внедрил счетчик, который вставляет </tr><tr>
каждые 3 элемента, чтобы отрезать старую строку и начать новую.
Это прекрасно работает единственная проблема заключается в случае последнего пункта, потому что она всегда будет открывать новую строку из-за последнего <tr>
Как я могу перестроить это так, что она не открывает строку на последнем счете?
echo "<table border='2'><tbody><tr>";
foreach ($myarray as $post){
// Adds to count, outputs title
echo "<td>" . $post['title'] . "</td>";
$rowcounter++;
// Adds to count, outputs filepath with "view"
echo "<td><a href='../posts/post-" . $post['filepath'] . "'>View</a></td>";
$rowcounter++;
// Adds to count, outputs filepath with "edit"
echo "<td><a href='../posts/post-" . $post['filepath'] . "?edit=true'>Edit</a></td>";
$rowcounter++;
// Tests the count
echo 'rowcounter = ' . $rowcounter;
if ($rowcounter == "3"){
$rowcounter = 0;
echo "</tr><tr>";
}
}
echo "</tr></tbody></table>";
Ваше название вопроса не соответствует вашему вопросу. Измените свой цикл на 'foreach ($ myarray as $ key => $ post) {', а затем, чтобы увидеть, находитесь ли вы в последнем элементе 'if ($ key == (count ($ myarray) -1)) {'. Хотя есть лучшие решения. – EvilZebra