PHP の implode 関数に非常に奇妙な問題があります。驚くべきことに、配列の要素の 1 つにいくつかの白い文字 (スペース) を追加します。
これが私のコードです:
$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
}
なぜそこにこれらのスペースを追加するのですか? implode 関数の既知のバグですか?
ありがとう!