检查数组字段在PHP中是否为空

时间:2018-06-22 18:12:53

标签: php arrays laravel

我需要检查数组中的字段是否为空。我想知道PHP中是否有执行此操作的函数。我已经尝试过empty(),但是由于它检查数组是否为空,因此它返回false,因为数组具有字段。

以下数组如下:

"wm" => array:7 [▼
    "make" => null
    "model" => null
    "version" => null
    "portal_plan_id" => null
    "portal_highlight_id" => null
    "price_type_id" => null
    "announce" => null
  ]

请注意,这些值为null,它们是我需要检查的值。

谢谢!

2 个答案:

答案 0 :(得分:3)

有两种方法可以执行此操作,具体取决于您的需求。如果您想知道任何值是否为空:http://php.net/manual/en/function.array-search.php

array_search(null, $array)

如果没有键为null,array_search将返回false。因此,您可以

if(array_search(null, $array) !== false){
    // There is at least one null value
}

如果您想知道哪些键具有空值: http://php.net/manual/en/function.array-keys.php

array_keys($array, null)

array_keys将提供所有具有空值的键。所以你可以检查

if(count(array_keys($array, null)) > 0){
    // There is at least one null value. array_keys($array, null) can retrieve the keys that are null
}

答案 1 :(得分:0)

$array = [
     'make' => KIA,
     'model' => Koup,
     'version' => 5.0,
     'portal_plan_id' => null 
];

if(in_array(null, $array)){
    // do something
}

上面的代码检查是否至少有一个空值,在这种情况下,它将评估为真

$array = [
   'make' => null,
   'model' => null,
   'version' => null,
   'portal_plan_id' => null  
];

if(count(array_unique($array)) == 1 && array_unique($array)['make'] == null)
{        
       //do something
}

在['make']是第一个索引的地方,您可以选择任何索引。以上将评估为true。它是这样工作的;它检查所有值是否都相同(array_unique($ array))== 1),并且第一个值是否为null(array_unique($ array)['make'] == null)。按照逻辑,如果第一个值是null且所有值都相同,则可以得出结论,所有值都是null