【发布时间】:2011-04-19 00:02:03
【问题描述】:
如何删除数组中只包含空格的所有元素,不是像"foobar "这样的元素中的空格,但只是像" "这样的空数组元素?
谢谢。
【问题讨论】:
标签: php arrays whitespace
如何删除数组中只包含空格的所有元素,不是像"foobar "这样的元素中的空格,但只是像" "这样的空数组元素?
谢谢。
【问题讨论】:
标签: php arrays whitespace
preg_grep() 是你的朋友。
$array = array("This", " ", "is", " ", "a", " ", "test.");
$array = preg_grep('/^\s*\z/', $array, PREG_GREP_INVERT);
var_dump($array);
这将根据\s 字符类(空格、制表符和换行符)删除字符串为空白或仅包含空格的所有数组成员。
array(4) {
[0]=>
string(4) "This"
[2]=>
string(2) "is"
[4]=>
string(1) "a"
[6]=>
string(5) "test."
}
【讨论】:
preg_grep('^\s*$', $array, PREG_GREP_INVERT);
$arr = array("This", " ", "is", " ", "a", " ", "test.");
$result = array();
for($arr as $x) {
if(!preg_match("/^\s*$/", $x)) $result[] = $x;
}
$arr = $result;
【讨论】:
此代码利用array_filter 的回调参数。它将循环数组,在值上调用trim(),如果结果值为false,则将其删除。 (一个空字符串会)
$a = array_filter($a, 'trim');
【讨论】:
'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 "
}
【讨论】:
foreach($arr as $key=>$value)
{
if($value=" ")
{
unset($arr[$key]);
/* optional */array_values($arr);
}
}
【讨论】: