PHP получает последнюю итерацию значение цикла foreach - PullRequest
1 голос
/ 15 февраля 2010

Хорошо, у меня есть цикл foreach, и я хотел узнать, смогу ли я получить значение данных последней итерации для текущей итерации?

Код:

foreach($array as $key=>$data) {
   echo "Key: ".$key." Data: ".$data."<br />";
}

Результаты:

Key: 0 Data: 23244
Key: 0 Data: Program ID: 39-1-1499-1

Результаты, которые я хотел бы получить:

Key: 23244 Data: Program ID: 39-1-1499-1

есть ли способ получить ключ на текущей итерации в качестве данных от последней?

Ответы [ 5 ]

6 голосов
/ 15 февраля 2010

Я не уверен, что понимаю ваш вопрос очень хорошо ... но похоже, что вам нужен последний элемент в массиве ... есть способы получить первые / последние элементы из массива без необходимости перебирать их.

$last_item = end($array);

посмотрите примеры php .

5 голосов
/ 15 февраля 2010
$i=0;
foreach($array as $key=>$data) {
   if($i%2 == 0){ echo "Key: ".$data;}
   else{ echo "Data: ".$data."<br />";}
   $i++;
}

Или что-то на этот счет должно работать.

Стоит отметить, что, вероятно, лучше исправить источник проблемы (массив), чтобы он выводился в правильном формате, и вы могли использовать свой исходный код, а не этот обходной путь.

2 голосов
/ 04 июля 2014

Первый и последний элемент массива:

foreach($array as $element) {
    if ($element === reset($array))
        echo 'FIRST ELEMENT!';

    if ($element === end($array))
        echo 'LAST ELEMENT!';
}
0 голосов
/ 13 февраля 2013

что вопросы сбивают с толку.

в циклах foreach () последние значения итерации по-прежнему сохраняются в ваших ключах $ key и $ data, пока они не будут изменены.

0 голосов
/ 15 февраля 2010

Вы, вероятно, не хотите делать это с циклом foreach, а с вызовами функций. Я не совсем понимаю вашу структуру данных, потому что ключу 0, похоже, присвоены два разных значения, не могли бы вы объяснить это более подробно?

...