Пропустить клавиши в массиве без значений в цикле foreach

У меня нормальный одномерный массив, назовем его $ 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 все пустые ключи, поэтому другой массив, который я здесь создаю ( $ options ), может иметь меньшее количество строк, чем $ myarray . В то же время, как вы видите, я считаю циклы, потому что мне нужно увеличение числа в качестве значения одного из ключей нового построенного массива. Счет должен быть прогрессивным (1..2..3..4 …).

благодаря

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

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

 $array = array('foo', '', 'bar'); foreach($array as $value) { if (empty($value)) { continue; } echo $value . PHP_EOL; } // foo // bar