How can I strip whitespace only elements from an array?

前端 未结 5 1322
有刺的猬
有刺的猬 2021-01-23 05:54

How I can remove all elements of an array that contain just whitespace, not whitespace in an element like \"foobar \" but just empty array elements like <

相关标签:
5条回答
  • 2021-01-23 06:11

    This code takes advantage of the callback parameter for array_filter. It will loop the array, call trim() on the value, and remove it if the resulting value evaluates to false. (which an empty string will)

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

    0 讨论(0)
  • 2021-01-23 06:16

    preg_grep() is your friend.

    $array = array("This", " ", "is", " ", "a", " ", "test.");
    
    $array = preg_grep('/^\s*\z/', $array, PREG_GREP_INVERT);
    
    var_dump($array);
    

    CodePad.

    This will drop all array members of which the string is blank or only consist of whitespace according to \s character class (spaces, tabs, and line breaks).

    Output

    array(4) {
      [0]=>
      string(4) "This"
      [2]=>
      string(2) "is"
      [4]=>
      string(1) "a"
      [6]=>
      string(5) "test."
    }
    
    0 讨论(0)
  • 2021-01-23 06:16
    $arr = array("This", " ", "is", " ", "a", " ", "test.");
    $result = array();
    for($arr as $x) {
         if(!preg_match("/^\s*$/", $x)) $result[] = $x;
    }
    $arr = $result;
    
    0 讨论(0)
  • 2021-01-23 06:20
    $array = array('foo','  ','bar ');
    
    foreach ($array as $key => $value) {
        if (trim($value) == '') unset($array[$key]);
    }
    

    Array when dumped then contains:

    array(2) {
      [0]=>
      string(3) "foo"
      [2]=>
      string(4) "bar "
    }
    
    0 讨论(0)
  • 2021-01-23 06:21

    foreach($arr as $key=>$value)

    {

     if($value=" ")
    
      {
    

    unset($arr[$key]);

    /* optional */ array_values($arr);

      }
    
    }
    
    0 讨论(0)
提交回复
热议问题