【问题标题】:Check if array fields are empty in PHP检查PHP中的数组字段是否为空
【发布时间】:2018-12-02 06:18:28
【问题描述】:

我需要检查数组中的字段是否为空。我想知道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,它们是我需要检查的值。

谢谢!

【问题讨论】:

  • 这是一个英语网站。您可以查看this sitethis site 是否支持您的语言。
  • 很抱歉,我没有看到我在错误的网站上提问。
  • 酷,酷,现在看来这是一个合理的问题。
  • 您是否需要知道每个值是空值还是只有特定值?
  • 每个值@NMahurin

标签: php arrays laravel


【解决方案1】:

根据您的需要,有两种方法可以做到这一点。如果您想知道 any 值是否为空:http://php.net/manual/en/function.array-search.php

array_search(null, $array)

如果没有键为空,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
}

【讨论】:

    【解决方案2】:
    $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'] 是您的第一个索引,您可以选择任何索引。以上将评估为真。这就是它的工作原理;它检查所有值是否相同(array_unique($array)) == 1)以及第一个值是否为空(array_unique($array)['make'] == null)。按逻辑如果第一个值为null且所有值都相同,则可以断定所有值都为null

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 2022-11-02
      • 2018-09-29
      • 2011-06-29
      • 1970-01-01
      相关资源
      最近更新 更多