php - 从 MySQL 的 GROUP_CONCAT 创建 PHP 数组

标签 php mysql

我使用 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';
}

Example/Demo

关于php - 从 MySQL 的 GROUP_CONCAT 创建 PHP 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37472680/

相关文章:

php - 域对象工厂是什么样的?

php - 创建服务时出现命名空间错误

php - 使用 HTML5 pushstate 请求 ajax 时 undefined index 通知

java - 将java连接到mysql域服务器

mysql - 连接MySQL服务器的shell脚本

javascript - 使用 POST 和 GET 时 WooCommerce Rest API 错误

php - 在 PHP 中使用内置函数 ini_set 和符号 @ 有什么区别?

php - 在 Mysql 中运行第二次提交的结果是什么?

javascript - 两个表的连接

MySQL替换成并获取最后插入ID