逗号内爆阵列

时间:2014-04-15 08:59:05

标签: php codeigniter

如果我有这个数组:

array(1) {
  ["ID"]=>
  string(1) "3"
}
array(1) {
  ["ID"]=>
  string(1) "6"
}
array(1) {
  ["ID"]=>
  string(1) "9"
}

我希望得到一个输出:3, 6, 9

如何连接或破坏这些数组值以放入变量,以便我将该变量的值使用如下:3, 6, 9$this->db->set('SecondaryRoleID', $imploded);

1 个答案:

答案 0 :(得分:4)

使用函数array_column将每个元素的ID提取到一维数组中,然后像往常一样implode

echo implode(',', array_column($array, 'ID'));

如果您运行的PHP早于5.5,则array_column无法开箱即用,因此您必须提供等效代码,例如

echo implode(',', array_map(function($r) { return $r['ID']; }, $array));

也就是说,您对最终结果的建议使用(将表示项ID的逗号分隔整数列表粘贴到数据库字段中)是不寻常的,可能是错误的。对于多对多关系(每个用户可以有多个角色,每个角色可以分配给许多用户),标准实现是使用连接表,保持数据库架构规范化。