Я пытаюсь настроить таргетинг на последний дочерний элемент массива (в операторе foreach), чтобы немного изменить вывод только этого элемента. Я пробовал множество подходов, но не имел никаких прорывов. Мой цикл очень прост:
// Loop through the items
foreach( $array as $item ):
echo $item;
endforeach;
Вышеприведенное работает нормально, но я хочу изменить вывод конечного элемента в массиве на что-то вроде:
// Change final item
echo $item . 'last item';
Это возможно?
Возможный дубликат Найдите последний элемент массива при использовании цикла foreach в PHP
Просто echo 'last item'; после цикла.






Похоже, вы хотите что-то вроде этого:
<?php
// PHP program to get first and
// last iteration
// Declare an array and initialize it
$myarray = array( 1, 2, 3, 4, 5, 6 );
// Declare a counter variable and
// initialize it with 0
$counter = 0;
// Loop starts from here
foreach ($myarray as $item) {
if ( $counter == count( $myarray ) - 1) {
// Print the array content
print( $item );
print(": Last iteration");
}
$counter = $counter + 1;
}
?>
Используйте count(), это подсчитает все элементы вашего массива. Используйте длину счетчика для вашего последнего индекса элемента. как показано ниже. Установите последний элемент как «Последний элемент» перед тем, как начать свой foreach, таким образом, вам не потребуется проверка.
$array[count($array) - 1] = $array[count($array) - 1]."Last item";
foreach( $array as $item ){
echo $item;
}
$last_key = end(array_keys($array));
foreach ($array as $key => $item) {
if ($key == $last_key) {
// last item
echo $item . 'last item';
}
}
Спасибо за это - идеально с несколькими настройками.
Вы можете использовать end
end : Set the internal pointer of an array to its last element
$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry
Эй, вы можете просто использовать функцию end для последнего элемента. Вам не нужно повторять это.
Синтаксис: end($array)
Как насчет
echo array_reverse($array)[0] . 'last item', или вы тоже хотите все предметы?