0

mysqlクエリの結果を文字列に入れようとしていますが、答えを見つけようとしましたが、同様の投稿はすべてサブクエリの答えを取得していました。これは私がやろうとしていることではありません。

例えば

    +----------------------------------+
    |            Fruits_tbl            |
    +----+---------+---------+---------+
    | ID |  Fruit  |  Color  |  Number |
    +----+---------+---------+---------+
    |  1 |  Orange |  Orange |    3    |
    |  2 |  Apple  |  Red    |    5    |
    +----+---------+---------+---------+



    $sql = "select Fruits,Color,Number from Fruits_tbl where ID = 2";
    $result = $pdo->query($sql);
    $row = $result->fetch();
    print_r($row);

これにより、
Array([0] => "Apple"、[1] => "Red"、[2] => "5"、[Fruit] => "Apple"、[Color]=>"のようになります。赤"、[番号] =>" 5 ")

implodeは私にそれぞれ2つを与えます私が
欲しいのは文字列="Apple、Red、5"だけです

私が現在持っているのは

$string = $row['Fruit'].", ".$row['Color'].", ".$row['Number']

ご覧のとおり、それはかなり退屈です。
implodeのようなものがありますが、インデックス配列などを返すだけですか?

4

2 に答える 2

2

フェッチを変更して、連想配列だけを取得できます。

$row = $result->fetch(PDO::FETCH_ASSOC);

または、リストを取得できます。

$row = $result->fetch(PDO::FETCH_NUM);

これらのいずれも単一の値に対して展開でき、array_unique()のようなオーバーヘッドは含まれません。

于 2012-09-13T21:50:05.000 に答える
1

$row[Fruit].", ".$row[Color]する必要があります$row['Fruit'].", ".$row['Color']

私はあなたがやろうとしていたことを誤解しました。

それらを使用array_unique()して内破します。

$string = rtrim(implode(',', array_unique($your_array)),',');
于 2012-09-13T21:37:56.183 に答える