Определяем последнюю итерацию в цикле foreach
Столкнулся с задачей вывода данных массива через слеш, например: первое значение / второе значение / третье значение. Вроде бы все просто, берем массив и распечатываем его содержимое с помощью цикла foreach, отделяя значения слешем, но тогда мы получим следующее: первое значение / второе значение / третье значение /. Последний слеш портит всю картину. Чтобы его убрать нужно определить последнюю итерацию цикла foreach, и в ней не распечатывать слеш.
От слов к делу
<?php
$input_array = array( '1', '2', '3', '4'); // исходный массив
$i = 0; // начальное значение счетчика итераций
foreach($input_array as $value){
if($i != count($input_array)-1){
print $value . ' / ';
}else{
print $value . ' ';
}
$i++;
}
?>
В результате получаем: 1 / 2 / 3 / 4. Для тех, кто до сих пор не догнал, что тут происходит, поясняю: мы создаем переменную $i, которая будет счетчиком итераций цикла, то есть ее начальное значение равняется нулю, и после каждого прохода цикла она увеличивается на единицу, и как только она станет равна последнему индексу элемента массива (count($input_array)-1), то условие перенаправляет нас на печать $value без слеша.