我有一个数组如下所示

$fruit = array('  apple ','banana   ', ' , ',     '            cranberry ');

我想要一个数组,其中包含的值没有空白两侧,但它可以包含空值如何在php中做到这一点。输出数组应该是这样的

$fruit = array('apple','banana', ',', 'cranberry');

当前回答

$fruit= array_map('trim', $fruit);

其他回答

Array_map和trim可以完成这项工作

$trimmed_array = array_map('trim', $fruit);
print_r($trimmed_array);

简单地说,您可以使用正则表达式修剪所有空格或缩小数组项

$array = array_map(function ($item) {
    return preg_replace('/\s+/', '', $item);
}, $array);
$fruit= array_map('trim', $fruit);

如果数组是多维的,这将工作得很好:

//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 ) )

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上的第二个例子