【问题标题】:Removing empty elements from php array从php数组中删除空元素
【发布时间】:2014-03-16 08:15:34
【问题描述】:

我正在寻找一种从数组中删除空元素的方法。 我知道 array_filter() 会删除所有空值。

问题是我认为一个只包含空格、制表符和换行符的字符串也是空的。

那么在这种情况下最好使用什么?

【问题讨论】:

  • array_filter($array, function ($v) { return (bool)trim($v); });
  • 最后完美,谢谢。
  • @Kristian Rafteseth 如果您想表达“感谢”,您可以选择此答案为“已接受”。

标签: php arrays


【解决方案1】:

array_filter的回调中使用trim()

$array = array_filter($array, function ($v) { return (bool)trim($v); });

或更短的版本(带有隐式类型转换):

$array = array_filter($array, 'trim');

【讨论】:

    【解决方案2】:

    php empty()

    bool 空(混合 $var)

    判断一个变量是否被认为是空的。一个变量是 如果它不存在或者它的值等于 FALSE,则认为它是空的。 如果变量不存在,empty() 不会生成警告。

    应该做的事情:

    foreach($array as $key => $stuff)
    {
        if(empty(stuff))
        {
            unset($array[$key]);
        }
    }
    $array  = array_values($array );// to reinstate the numerical indexes.
    

    【讨论】:

      【解决方案3】:

      我知道这可能会迟到回答,但它适用于那些可能对其他方法感兴趣的人来解决这个问题。这是我自己的做法。

      function my_array_filter($my_array)
      {
          $final_array = array();
          foreach ( $my_array as $my_arr ) 
          {
              //check if array element is not empty
              if (!empty($my_arr)) $final_array[] = $my_arr;
          }
          //remove duplicate elements
          return array_unique( $final_array );
      }
      

      希望有人觉得这很有用。

      【讨论】:

      • 这是一个很棒的代码,先生,我必须说它确实帮助了我一直在做的事情
      猜你喜欢
      • 2018-08-06
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 2023-03-09
      • 2015-06-14
      • 2011-07-23
      相关资源
      最近更新 更多