0

我对 PHP 的内爆函数有非常非常奇怪的问题。它令人惊讶地向数组元素之一添加了一些白色字符(空格)。

这是我的代码:

$cities = array(...,5792753,...);

$where .= ' AND gr.geo_city IN(' . implode(',', $cities) . ') ';

//it displays something like: ... AND gr.geo_city IN(...,5         792753,...)
//but it should display: ... AND gr.geo_city IN(...,5792753,...) 
//PLEASE NOTE SPACES IN THE EXAMPLE ABOVE!!
echo $where;            

我做了一些调试,似乎原始值不包含任何白色字符。这是我用来检查它的代码:

foreach($cities as $ct)
{
  if(strpos($ct,'792753') !== FALSE)
    echo $ct;//it displays 5792753, not 5...792753
}

为什么要在那里添加这些空格?它是内爆函数的一些已知错误吗?

谢谢!

4

2 回答 2

2

您几乎可以肯定在原始数组值中有这些字符。正如评论者所说,implode()没有什么奇怪的......再次检查您的数据是否有隐藏的选项卡或空格或其他空白字符。

于 2012-06-13T10:45:08.580 回答
0

如果您想确保没有空格,最好使用一些 php 函数(str_replace、trim 或 reg_exp 函数)去除它们。除了给定的分隔符,Implode 不添加任何内容。

于 2012-06-13T10:52:44.723 回答