本文实例讲述了PHP清除数组中所有字符串两端空格的方法,分享给大家供大家参考。具体实现方法如下:
一般来说在php中清除字符串中空格我们可以有很多实现方法,但清除数组中所有值的前后代码我们并不能简单的使用这些方法,本文实例主要使用php独有的array_map函数遍历清除数组中所有字符串的两端空格。
具体实现代码如下:
复制代码 代码如下:
function TrimArray($Input){
if (!is_array($Input))
return trim($Input);
return array_map('TrimArray', $Input);
}
/*
Old version (v0.1):旧版本给大家作为对比参考:
function TrimArray($arr){
if (!is_array($arr)){ return $arr; }
while (list($key, $value) = each($arr)){
if (is_array($value)){
$arr[$key] = TrimArray($value);
}
else {
$arr[$key] = trim($value);
}
}
return $arr;
}
*/
//演示范例:
$DirtyArray = array(
'Key1' => ' Value 1 ',
'Key2' => ' Value 2 ',
'Key3' => array(
' Child Array Item 1 ',
' Child Array Item 2'
)
);
$CleanArray = TrimArray($DirtyArray);
var_dump($CleanArray);
Result will be:
array(3) {
["Key1"]=>
string(7) "Value 1"
["Key2"]=>
string(7) "Value 2"
["Key3"]=>
array(2) {
[0]=>
string(18) "Child Array Item 1"
[1]=>
string(18) "Child Array Item 2"
}
}
希望本文所述对大家的PHP程序设计有所帮助。
$arr=array();
$arr[]="ad dfd dfd";
$arr[]="saf sdf dsf";
$arr[]="sdf dsfgfd dd";
$arr[]="dfd dfferw ";
while(list($name,$value)=each($arr)){
echo $value;
$arr2[]=trim($value);//去空格
}
print_r($arr2);//这应该是你想要的数组吧~
?>
这种算法实际上只是把每个空格向后移,问题在于它碰到两个空格并列时就囧了...
可以稍微改下,每次遇到空格时不与下一个字符交换,而是检索下一个非空格的字符与之交换,最后整个去掉多出来的空格,这样就OK了