Пропускать ключи в массиве без значений в цикле foreach - PullRequest
2 голосов
/ 19 февраля 2012

У меня есть обычный одномерный массив, назовем его $ myarray , с несколькими ключами в диапазоне от [0] до [34].Некоторые ключи могут быть пустыми, хотя.

Предположим, я хочу использовать такой массив в цикле foreach

 $i = 1;
 $choices = array(array('text' => ' ', 'value' => ' '));
 foreach ( $myarray as $item ) :
      $count = $i++; 
      $choices[] = array('text' => $count, 'value' => $count, 'price' => $item);
 endforeach;

Я бы хотел пропустить в этом цикле foreach все пустые ключи, поэтому другой массив, который я создаю здесь( $ choices ) может иметь меньшее количество строк, чем $ myarray .В то же время, как вы видите, я считаю циклы, потому что мне нужно увеличивать число как значение одного из ключей строящегося нового массива.Счет должен быть прогрессивным (1..2..3..4 ...).

спасибо

1 Ответ

7 голосов
/ 19 февраля 2012

array_filter() удалит пустые элементы из массива

Вы также можете использовать continue внутри цикла, чтобы пропустить оставшуюся часть структуры цикла и перейти к следующему элементу:

$array = array('foo', '', 'bar');

foreach($array as $value) {
  if (empty($value)) {
    continue;
  }

  echo $value . PHP_EOL;
}

// foo
// bar
...