Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP未删除空格并显示错误的字符长度_Php - Fatal编程技术网

PHP未删除空格并显示错误的字符长度

PHP未删除空格并显示错误的字符长度,php,Php,我有一个从数据库中检索到的单词数组。它看起来像(var_dump): 第44个元素“As”在单词前面有一点空白 我试着用手把这个拿开 foreach($description_array as $value) { $value = str_replace(" ", "", $value); } 但这一结果对元素没有影响。我还注意到“As”据说有5个字符。我认为它们可能是新台词或其他一些特殊字符,所以我尝试: foreach($description_array as $value) {

我有一个从数据库中检索到的单词数组。它看起来像(var_dump):

第44个元素“As”在单词前面有一点空白

我试着用手把这个拿开

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));
}