我使用 GROUP_CONCAT 从 MySQL 查询中获取数据:
GROUP_CONCAT('id => ',assignments.userid,', assigned => ',assignments.assigned SEPARATOR ';') as assigneeids
并尝试将其转换为 PHP 数组。
$assignees = explode(';', $ticket['assigneeids']);
foreach($assignees as $assignee) {
echo "$assignee\n"; // $assignee['id'] outputs 'i'
echo gettype($assignee) . '\n';
}
但不幸的是,$assignee
变成了字符串而不是数组。输出:
id => 1001, assigned => 1419648601
string
id => 1002, assigned => 1419649207
string
我做错了什么?
最佳答案
您将它连接成一个字符串,而不是一个数组。这样做不是更好吗?
GROUP_CONCAT(assignments.userid,'_',assignments.assigned SEPARATOR ';') as assigneeids
获取后,您需要执行一些explode()
魔法
$assignees = explode(';', $ticket['assigneeids']);
foreach($assignees as $assignee) {
list($id, $assigned) = explode("_", $assignee);
echo "$id\n";
echo gettype($assigned) . '\n';
}
关于php - 从 MySQL 的 GROUP_CONCAT 创建 PHP 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37472680/