2017-02-08 5 views
0

PHPバージョン5.6 のWindows Server 2012PHPのマッピングは奇妙な[]最後に

を挿入し、私は現在、この奇妙な行動を経験しています:

$string = "asdf"; 
echo $string; // asdf 
$myArray = explode(" ", $string); 
var_dump($myArray) // "array(1) { [0]=> string(4) "asdf"}[]" 
print_r($myArray) // "Array([0] => asdf)[]" 

$someQuery = "SELECT * FROM table "; 

foreach($myArray as $idx => $keyword){ 
    $someQuery .= "WHERE someColumn LIKE '%$keyword%'"; 
} 
echo $someQuery // SELECT * FROM table WHERE someColumn LIKE '%asdf%'[] <-- ???? 

なぜ[]が表示されません最後に?そしてどうすればそれを取り除くことができますか?

私は配列をvar_dumpingしていると考えていましたが、動的クエリを作成するためにforeachを使ってマップしても、クエリーの最後にこれらの奇妙なブレイザーが追加されて破壊されます。

さらなる情報が必要な場合はお知らせください。

全体、フィルタリングされていないコードはここで見つけることができます:http://pastebin.com/PqvNtHDN

+0

それは –

+0

が接続されている文字列で私の質問を更新しました私のシステムで正常に動作します - ブレーサーが「」 –

+1

それは私のserver.arrayに見つける(1){ [0] => の外に追加されますどのように注意してください文字列(4) "asdf" SELECT * FROMテーブルWHERE someColumn LIKE '%asdf%' –

答えて

0

は、それが動作するはず

$string = "asdf"; 
echo $string; // asdf 
$myArray = explode(" ", $string); 
if(is_array($myArray) && count($myArray) > 0){ 
    $myArray = array_values(array_filter($myArray)); // I have added this line 
} 
$someQuery = "SELECT * FROM table "; 

foreach($myArray as $idx => $keyword){ 
    $someQuery .= " WHERE someColumn LIKE '%$keyword%'"; 
} 
echo $someQuery; 

はそれを試してみる、これを試してみてください。

+0

あなたの解決策を試しました。それでもprint_rに現れる最後の[]と同じ結果になります。var_dump –

+0

これがあなたの唯一のコードですか、あなたは疑問視していますか? – rahulsm

+0

はい。私はちょうどできるだけ小さくなるようにそれを打ち破った。コード全体はここにあります:http://pastebin.com/PqvNtHDN –