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")

内爆会给我两个
我想要的只需要一个字符串=“Apple,Red,5”

我目前拥有的是

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

如您所见,这相当乏味。
是否有类似 implode 但只返回索引数组之类的东西?

4

2 回答 2

2

您可以修改您的fetch以获得一个关联数组:

$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 回答