我有一个数组如下所示
$fruit = array(' apple ','banana ', ' , ', ' cranberry ');
我想要一个数组,其中包含的值没有空白两侧,但它可以包含空值如何在php中做到这一点。输出数组应该是这样的
$fruit = array('apple','banana', ',', 'cranberry');
我有一个数组如下所示
$fruit = array(' apple ','banana ', ' , ', ' cranberry ');
我想要一个数组,其中包含的值没有空白两侧,但它可以包含空值如何在php中做到这一点。输出数组应该是这样的
$fruit = array('apple','banana', ',', 'cranberry');
当前回答
如果值为NULL,则在array_map中修改类型。
更好的做法是:
$result = array_map(function($v){
return is_string($v)?trim($v):$v;
}, $array);
其他回答
如果值为NULL,则在array_map中修改类型。
更好的做法是:
$result = array_map(function($v){
return is_string($v)?trim($v):$v;
}, $array);
Multidimensional-proof解决方案:
array_walk_recursive($array, function(&$arrValue, $arrKey){ $arrValue = trim($arrValue);});
如果你不想丢失一个关联数组的元素,不要使用array_walk或array_map!
一个略短版本的foreach解决方案:
foreach($array as &$val)
$val = trim($val);
这适用于关联数组。
Array_walk()可以和trim()一起使用来修整数组
<?php
function trim_value(&$value)
{
$value = trim($value);
}
$fruit = array('apple','banana ', ' cranberry ');
var_dump($fruit);
array_walk($fruit, 'trim_value');
var_dump($fruit);
?>
参见http://www.php.net/manual/en/function.trim.php上的第二个例子
如果数组是多维的,这将工作得很好:
//trims empty spaces in array elements (recursively trim multidimesional arrays)
function trimData($data){
if($data == null)
return null;
if(is_array($data)){
return array_map('trimData', $data);
}else return trim($data);
}
一个例子是这样的:
$arr=[" aaa ", " b ", "m ", [" .e ", " 12 3", "9 0 0 0 "]];
print_r(trimData($arr));
//RESULT
//Array ( [0] => aaa [1] => b [2] => m [3] => Array ( [0] => .e [1] => 12 3 [2] => 9 0 0 0 ) )