Как исключить первый элемент из массива foreach

Как исключить первый элемент из массива?

<?php foreach($products as $product) { ?>
   <div></div>
<?php } ?>

Ответы (5 шт):

Автор решения: doox911
  1. Погуглил за вас.
  2. Мой вариант (если это шаблон):
<?php $first_itaration = true; ?>
<?php foreach($products as $product): ?>
  <?php if($first_itaration): ?>
    <?php $first_itaration = false; ?>
    <?php continue; ?>
  <?php endif; ?>
  <div></div>
<?endforeach;?>
  1. Комментарий к документации.
  2. Документация по continue.
  3. Как удалить первый элемент массива.

Я бы не пропускал итерацию, а просто удалял бы первый элемент. Код был бы чище.

UPD А ещё лучше, не заносил бы не нужные данные.

→ Ссылка
Автор решения: r.mcreal
<?php foreach($products as $key => $product) { 
      if($key == 0){continue;}?>
      <div></div>
<?php } ?>`

Как вариант. На крайний случай можно добавить счетчик

→ Ссылка
Автор решения: 25517

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

Если вы используете php версии 7.3 и выше, то можно воспользоваться функцией array_key_first.

https://www.php.net/manual/ru/function.array-key-first.php

Данная функция получает первый ключ массива.

<?php

$array = [...];

$firstKey = array_key_first($array);

unset($array[$firstKey]);

Если же, вы пользуетесь версией php ниже, чем 7.3, тогда, можно взять пример полифилла из документации.

<?php
if (!function_exists('array_key_first'))
{
    function array_key_first(array $arr)
    {
        foreach($arr as $key => $unused)
        {
            return $key;
        }
        return null;
    }
}
→ Ссылка
Автор решения: Eugene Bocharov

Можно использовать функцию array_slice, чтобы получить часть массива без первого элемента:

<?php foreach (array_slice($products, 1) as $product): ?>
   <div></div>
<?php endforeach; ?>
→ Ссылка
Автор решения: Сергей
<?php $i = 0; foreach($products as $product)  { if ($i > 0) { ?>
<div></div>
<?php } $i++; } ?>
→ Ссылка