gpt4 book ai didi

php - 在php数组中添加MySQL结果有重复值

转载 作者:行者123 更新时间:2023-11-28 23:16:41 25 4
gpt4 key购买 nike

解释场景:

我在 MySQL 数据库中有这个表

+-------------------------------------------------------------------------+    
| message_id | client_id | admin_id | message | date_posted | read_status |
+-------------------------------------------------------------------------+

我正在选择所有消息并将它们分组到同一个客户端的 2D 数组中,这样结果可能看起来像

 $messages = array( 
"4" => array ("338", "4", "1", "message1", "20170904 120803", "0"),
"5" => array ("339", "5", "1", "message2", "20170904 120807","0")
);

我得到的结果是相似的,但数组中的每个值都是重复的

array (size=12)
'message_id' => string '22' (length=2)
0 => string '22' (length=2)
'client_id' => string '14' (length=2)
1 => string '14' (length=2)
'admin_id' => string '1' (length=1)
2 => string '1' (length=1)
'message' => string 'hii I'm new to this' (length=19)
3 => string 'hii I'm new to this' (length=19)
'date_posted' => string '2017-04-22 17:17:13' (length=19)
4 => string '2017-04-22 17:17:13' (length=19)
'read_status' => string '0' (length=1)
5 => string '0' (length=1)

这是我的查询

$grouped_messages = array();

foreach ($connect->query("SELECT DISTINCT * FROM request ORDER BY client_id") as $row) {
var_dump($row);
$client_id = $row['client_id'];

if (!isset($grouped_messages[$client_id])) {
$grouped_messages[$client_id] = array();
}

$grouped_messages[$client_id][] = $row;

}


foreach ($grouped_messages as $client_id => $client_messages) {
echo '<div>';
echo '<p>Messages for client #' . $client_id . '</p>';

foreach ($client_messages as $message) {
foreach($message as $column) {
echo $column;
}
}

echo '</div>';
}

关于为什么会发生这种情况有什么想法吗?

PS 同一个客户端可以有多个消息,这意味着该表中有多个行,这就是它将来自同一个客户端的所有这些消息放入关联数组的代码!

最佳答案

获取数字和文本键是 PDO 获取的默认行为。

您可以更改它,在您的情况下,这应该通过将属性 PDO::ATTR_DEFAULT_FETCH_MODE 设置为 PDO::FETCH_ASSOC 来完成:

$connect->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

或者您可以在实例化新的 PDO 对象时执行此操作。

更多模式 here .

关于php - 在php数组中添加MySQL结果有重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43568773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com