【问题标题】:Parsing redundant MySQL result into structured array将冗余 MySQL 结果解析为结构化数组
【发布时间】:2025-12-06 13:35:01
【问题描述】:
我的 MySQL 查询输出是
dbcol_a | dbcol_b
数据A1 |数据B1
数据A1 |数据B2
数据A2 |数据B3
数据A2 |数据B4
数据A2 |数据B5
我想解析成这样的结构化数组:
arcol_a | arcol_b
数据A1 |数据B1
----------|数据B2
数据A2 |数据B3
----------|数据B4
----------|数据B5
谢谢
【问题讨论】:
标签:
php
mysql
arrays
parsing
join
【解决方案1】:
$arr = array();
while($row = mysql_fetch_assoc($result)) {
if(isset($arr[$row['arcol_a']])) {
$arr[$row['arcol_a']][] = $row['arcol_b'];
} else {
$arr[$row['arcol_a']] = array($row['arcol_b']);
}
}
【解决方案2】:
应该这样做:
$desired_array = array();
foreach ($query_output as $value)
{
$desired_array[$value['arcol_a']][] = $value['arcol_b'];
}
这样,您可以将第二列中的每个值添加到具有第一列索引的数组中。
【解决方案3】:
- 制作一个名为
arcol_a_array。
- 循环通过您的
数据。对于每一行,检查并查看
如果当前的
arcol_a 值是
arcol_a_array 数组。如果不,
添加它。这个键的值应该是一个有一个元素的数组——当前行的arcol_b的值
- 如果
arcol_a 值存在于arcol_a_array 哈希表中,请修改数组以添加来自arcol_b 的新值。