检查数组是否有没有值的键,然后执行此操作(PHP)?

时间:2017-01-26 22:46:09

标签: php arrays loops key-value

假设我有一个如下所示的数组:

Array
(
    [0] => 
    [1] => 2017-01-01 00:00:00
)

如何动态检查区域是否有空值?

4 个答案:

答案 0 :(得分:1)

您可以使用empty()

$array = [
  null, 
  '2017-01-01 00:00:00',
  '',
  [],
  # etc..
];

foreach($array as $key => $value){
  if(empty($value)){
    echo "$key is empty";
  }
}

有关详细信息,请参阅type comparison table

答案 1 :(得分:1)

这样的东西
// $array = [ ... ];

$count = count($array);

for( $i=0; $i<=$count; $i++){
    if( $array[$count] == 0 ){
         // Do something
    }
}

答案 2 :(得分:1)

通过将数组值与array_filter(删除空值)的结果进行比较,可以看出它是否有空值。

$has_empty_values = $array != array_filter($array);

答案 3 :(得分:1)

为此你有更多的可能性:

  1. 您可以使用array_filter功能而无需第二个参数

    array_filter([ 'empty' => null, 'test' => 'test']);

  2. 但是因为这会删除所有等于false的值(null,false,0)

    1. 您可以将array_filter函数与回调函数一起使用:

      function filterEmptyValue( $value ) {
          return ! empty( $value );
      }
      
      array_filter([ 'empty' => null, 'test' => 'test'], 'filterEmptyValue');
      
    2. 您可以使用foreach或:

      $array = ['empty' => null, 'test' => 'test'];
      
      foreach($array as $key => $value) {
          if(empty($value)) {
              unset($array[$key]);
          }
      }
      
      $array = [null, 'test'];
      
      for($i = 0; $i < count($array); $i++){
          if(empty($array[$i])) {
              unset($array[$i]);
          }
      }
      

      这是样本,因此您必须考虑并为您的问题提供良好的解决方案