本文實例講述了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了