Как обрезать белые пробелы значений массива в php

У меня есть массив следующим образом

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

Я хочу, чтобы массив, содержащий значения без белых пробелов с обеих сторон, но может содержать пустые значения, как это сделать в php.the массив вывода должен быть таким

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

array_map и обрезка могут выполнять работу

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

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 ) ) 
 $fruit= array_map('trim', $fruit); 

У меня возникли проблемы с существующими ответами при использовании многомерных массивов. Это решение работает для меня.

 if (is_array($array)) { foreach ($array as $key => $val) { $array[$key] = trim($val); } } 
 function trimArray(&$value) { $value = trim($value); } $pmcArray = array('php ','mysql ', ' code '); array_walk($pmcArray, 'trimArray'); 

Контрольная работа