使用以下代码,我希望来自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);
看起来没错,我到底错在了什么?
答案 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