Если элементы массива просто вталкиваются в массив, тогда элементы массива получают последовательные индексы целых чисел, и я могу легко проверить, существует ли следующий элемент таким образом.
foreach($array as $id => $element) {
if((isset($array[$id+1]))) {
// Next array item exists
} else {
// Next array element does not exist
}
}
Но если у них есть строковые индексы, например, например:
$array = array(
'Mark' => 'Totally cool person',
'Ben' => 'Kind of a nerd'
);
Затем я могу проверить следующий элемент без предварительного подсчета элементов, а затем использовать счетчик внутри цикла?
$n = count($array);
$i = 0;
foreach($array as $id => $element) {
if(++$i < $n) {
// Next array item exists
} else {
// Next array item does not exist
}
}
}
Просто перебирайте ключи вместо значений. Если вы хотите получить доступ к значению внутри цикла, вы можете использовать $array[$keys[$id]]
.
$keys = array_keys($array);
foreach($keys as $id => $element) {
if((isset($keys[$id+1]))) {
// Next array item exists
} else {
// Next array element does not exist
}
}
Следующие элементы не существуют только для последнего элемента в массиве.
Может быть простой способ удалить последний элемент из массива, массив процессов без условия, а затем добавить последний элемент в массив и обработать его как элемент без следующего.