在foreach循环中跳过没有值的数组中的键

unf*_*vio 2 php arrays foreach key

我有一个普通的一维数组,我们称它为$ 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;
Run Code Online (Sandbox Code Playgroud)

我希望在这个foreach循环中跳过所有空键,因此我在这里构建的另一个数组($ choices)可能比$ myarray的行数少.但与此同时,正如您所看到的,我计算循环,因为我需要增加一个数字作为正在构建的新数组的一个键的值.计数应该是渐进的(1..2..3..4 ......).

谢谢

Mik*_*e B 7

array_filter() 将从数组中删除空元素

您还可以continue在循环内使用跳过循环结构的其余部分并移动到下一个项目:

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

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

  echo $value . PHP_EOL;
}

// foo
// bar
Run Code Online (Sandbox Code Playgroud)