PHP Postgresql以逗号分隔的字符串

时间:2018-03-29 15:11:24

标签: php arrays

使用以下代码,我希望来自implode的逗号分隔字符串:

$result = pg_exec($this->db, $sql);
$rows = pg_fetch_all($result);
$indexlistids = implode(", ", $rows);
echo $indexlistids."<br />";

但我得到了这个: Notice: Array to string conversion及其回声Array

使用
得到相同的结果 $indexlistids = join(", ", $rows);

看起来没错,我到底错在了什么?

1 个答案:

答案 0 :(得分:0)

$rows是一个数组数组。 “数组到字符串转换”错误来自于$rows中的元素是数组而不是字符串这一事实。

例如,implode(', ', reset($rows))应该有效,但不会显示预期结果。

您可以使用array_column()在使用implode()之前提取您的标识符:

$result = pg_exec($this->db, $sql);
$rows = pg_fetch_all($result);
$ids = array_column($rows, 'id'); // 'id' should be the name of your column or alias
$indexlistids = implode(", ", $ids);
echo $indexlistids."<br />";

示例:

$array = [ ['id'=>2,'val'=>'foo'], ['id'=>3,'val'=>'bar'] ];
$str = implode(', ', $array); // Array to string conversion
$str = implode(', ', array_column($array, 'id')); // Works
相关问题