Сокращенный способ проверки следующего элемента массива со строковыми индексами

0

Если элементы массива просто вталкиваются в массив, тогда элементы массива получают последовательные индексы целых чисел, и я могу легко проверить, существует ли следующий элемент таким образом.

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

}

Теги:
arrays

2 ответа

1
Лучший ответ

Просто перебирайте ключи вместо значений. Если вы хотите получить доступ к значению внутри цикла, вы можете использовать $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
   }
}
0

Следующие элементы не существуют только для последнего элемента в массиве.

Может быть простой способ удалить последний элемент из массива, массив процессов без условия, а затем добавить последний элемент в массив и обработать его как элемент без следующего.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню