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

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

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

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

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

Если массив многомерный, это будет отлично работать:

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

Ответ 4

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

Ответ 5

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

if (is_array($array)) {
    foreach ($array as $key => $val) {
        $array[$key] = trim($val);
    }
}

Ответ 6

function trimArray(&$value) 
{ 
    $value = trim($value); 
}
$pmcArray = array('php ','mysql ', ' code ');
array_walk($pmcArray, 'trimArray');

Тест