2

PHPのexplode関数に問題があります。

私は次のようにデータベースから文字列を引き出しています:

  column_name
  0,2000,0,3000,1000,7000,1000,0,0,0

これを$recordsetというオブジェクトにプルした後、explode関数を使用して配列を作成しています...次のようになります。

  $array = explode(",",$recordset->column_name)

しかし、どういうわけか、配列は私が期待するものとは異なります...

これは、配列をエコーし​​たときに得られるものです。

     Array
     (
     [0] => 0
     [1] => 0
     [2] => 0
     [3] => 3000
     [4] => 7000
     [5] => 2000
     [6] => 1000
     [7] => 1000
     [8] => 0
     [9] => 0
     )

ご覧のとおり、必要な値が得られません...ただし、データベースからの文字列が短い場合は、次のように言います。

    1000,0,1200,0

上記のロジックは正常に機能します。

この問題をデバッグまたは解決する方法がわかりません。

助けてください?

4

2 に答える 2

5

問題はありませんexplode()。問題は、データベースから取得している文字列です。この文字列が何らかの形で連結されている場合は、そこから探し始めます。そうでない場合は、データベース内の文字列を確認するか、テーブルにアクセスするクエリを確認してください。

GROUP_CONCATのドキュメントを見てください。順序は構文で指定できます。

于 2010-11-22T19:07:41.553 に答える
1

このコードパッドで爆発が正しく機能していることがわかるように、問題は爆発ではありません。

DBからの値を確認し、期待どおりの順序になっていることを確認します。

編集: この値はDBでどのように生成されますか?フィールド内の静的な値ですか、それとも連結から作成されていますか?

于 2010-11-22T19:06:30.343 に答える