PHP未删除空格并显示错误的字符长度
我有一个从数据库中检索到的单词数组。它看起来像(var_dump): 第44个元素“As”在单词前面有一点空白 我试着用手把这个拿开PHP未删除空格并显示错误的字符长度,php,Php,我有一个从数据库中检索到的单词数组。它看起来像(var_dump): 第44个元素“As”在单词前面有一点空白 我试着用手把这个拿开 foreach($description_array as $value) { $value = str_replace(" ", "", $value); } 但这一结果对元素没有影响。我还注意到“As”据说有5个字符。我认为它们可能是新台词或其他一些特殊字符,所以我尝试: foreach($description_array as $value) {
foreach($description_array as $value)
{
$value = str_replace(" ", "", $value);
}
但这一结果对元素没有影响。我还注意到“As”据说有5个字符。我认为它们可能是新台词或其他一些特殊字符,所以我尝试:
foreach($description_array as $value)
{
$value = str_replace("\n", "", $value);
}
及
但这两个命令都没有达到预期的效果。有什么想法吗,也许我遗漏了一些简单的东西?你可以使用
array\u map()
,也可以像下面那样使用trim
函数
$array = array_map('trim',$your_array);
// it wont work if you have sub arrays
或者您可以像这样修改代码
foreach($description_array as $value)
{
$arr[] = trim(preg_replace('/\s\s+/', '', $value));
}
可能是一个多字节字符$value是一个局部变量,更改它没有任何效果。您是否尝试使用
trim()
而不是str\u replace()
?@MightyPork那么我该如何更改数组的内容呢?foreach($description\u array as&$value)
注意符号。您的版本正在复制字符串,更改副本,然后丢弃它。您希望修改原始字符串。这是可行的,但我不明白为什么其他方法不起作用,因为每次覆盖时都将结果存储在单独的变量$value
中,所以请使用$value[]=
$array = array_map('trim',$your_array);
// it wont work if you have sub arrays
foreach($description_array as $value)
{
$arr[] = trim(preg_replace('/\s\s+/', '', $value));
}