0

このような文字列があり、スペースで区切られたすべての単語を含む配列に文字列を分割するために"thing aaaa"使用しています。explode()私はこのようなことを実行しますexplode (" ", $string)

理由はわかりませんが、結果は次のようになります:["thing","","","","aaaa"]; なぜ私がそこに3つの空の配列を入れるのか誰かが知っていますか?

編集:これは私がそれを使用している関数です:

public function query_databases() {

        $arguments_count = func_num_args();
        $status = [];
        $results = [];
        $split =[];

        if ($arguments_count > 0) {

            $arguments = func_get_args();

            $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($arguments));

            foreach ($iterator as $key => $value) {
                array_push($results, trim($value));
            }
            unset($value);

            $filtered = $this->array_unique_values($results, "String");

            foreach ($filtered as $key => $string) {

                if (preg_match('/\s/',$string)) {
                    array_push($split, preg_split("/\s/", $string));
                } else {
                    array_push($split, $string);
                }

            }
            unset($string);

            echo "Terms : ".json_encode($split)."<br>";

            foreach ($filtered as $database) {

                echo "Terms : ".json_encode()."<br>";
                $_action = $this->get_database($database);
                echo "Action : ".json_encode($_action)."<br>";
            }
            unset($database);


        } else {
            return "[ Databases | Query Databases [ Missing Arguments ] ]";
        }

    }

結果を台無しにする何か他のものかもしれませんか?!

4

3 に答える 3

1

スペースで配列を作成する場合は、preg_splitを検討することをお勧めします。

preg_split("/\s+/","thing aaaa");

これにより、配列( "thing"、 "aaaa");が得られます。

ここから撮影。

于 2013-01-28T18:17:09.863 に答える
0

@Barmarが言っtrim()たように、単語の前後のすべてのスペースを削除するだけなので、配列に必要以上の値が含まれていました。

この小さなスニペットが見つかりました:preg_replace( '/\s+/', ' ', $value ); 私を置き換えるtrim()と修正されます:)

于 2013-01-28T19:43:55.463 に答える
0

これを試して:

$str = str_replace(" ", ",", $string);
explode(",",$str);

このようにして、4つのコンマを出力した場合に問題が発生するのは空白だけであるかどうかを確認できます。これは、4つの空白があるためです。

于 2013-01-28T18:20:19.493 に答える