如何从数组中仅删除空格元素?

时间:2011-04-19 00:02:04

标签: php arrays whitespace

我如何删除仅包含空格的数组的所有元素, not "foobar "这样的元素中的空格,但只删除像" "这样的空数组元素?

感谢。

5 个答案:

答案 0 :(得分:6)

preg_grep()是你的朋友。

$array = array("This", " ", "is", " ", "a", " ", "test.");

$array = preg_grep('/^\s*\z/', $array, PREG_GREP_INVERT);

var_dump($array);

CodePad

这将删除字符串为空的所有数组成员,或者只根据\s字符类(空格,制表符和换行符)由空格组成。

输出

array(4) {
  [0]=>
  string(4) "This"
  [2]=>
  string(2) "is"
  [4]=>
  string(1) "a"
  [6]=>
  string(5) "test."
}

答案 1 :(得分:3)

$arr = array("This", " ", "is", " ", "a", " ", "test.");
$result = array();
for($arr as $x) {
     if(!preg_match("/^\s*$/", $x)) $result[] = $x;
}
$arr = $result;

答案 2 :(得分:2)

此代码利用array_filter的回调参数。它将循环数组,对值调用trim(),如果结果值的计算结果为false,则将其删除。 (这是一个空字符串)

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

答案 3 :(得分:0)

$array = array('foo','  ','bar ');

foreach ($array as $key => $value) {
    if (trim($value) == '') unset($array[$key]);
}

转储后的数组包含:

array(2) {
  [0]=>
  string(3) "foo"
  [2]=>
  string(4) "bar "
}

答案 4 :(得分:0)

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

{

 if($value=" ")

  {

unset($ ARR [$键]);

/* optional */ array_values($ arr);

  }

}