Ориентация на последнего потомка в массиве PHP внутри foreach - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь настроить таргетинг на последнего дочернего элемента массива (в выражении foreach), чтобы я мог немного скорректировать вывод только этого элемента.Я перепробовал множество подходов, но без прорывов.Мой цикл очень прост:

// Loop through the items
foreach( $array as $item ):
    echo $item;
endforeach;

Выше работает нормально, но я хочу изменить вывод конечного элемента в массиве на что-то вроде:

// Change final item
echo $item . 'last item';

Возможно ли это

Ответы [ 5 ]

1 голос
/ 26 июня 2019
 $last_key = end(array_keys($array));   
 foreach ($array as $key => $item) {
    if ($key == $last_key) {
       // last item
       echo $item . 'last item';
    }
 }
0 голосов
/ 26 июня 2019

Эй, вы можете просто использовать функцию end для последнего элемента.Вам не нужно повторять его.

Синтаксис: end($array)

0 голосов
/ 26 июня 2019

Вы можете использовать end

end : установить внутренний указатель массива на его последний элемент

$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry
0 голосов
/ 26 июня 2019

Используйте count(), это будет считать все элементы вашего массива.Используйте длину счета для вашего последнего индекса элемента.как ниже.Установите последний элемент как «Последний элемент» перед тем, как начать foreach, так что вам не понадобится проверка.

$array[count($array) - 1] = $array[count($array) - 1]."Last item";
foreach( $array as $item ){
    echo $item;
}
0 голосов
/ 26 июня 2019

Звучит так, будто вы хотите что-то вроде этого:

   <?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; 
} 

?> 

Результат здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...