将冗余的MySQL结果解析为结构化数组

时间:2011-05-18 22:43:28

标签: php mysql arrays parsing join

我的MySQL查询输出是

dbcol_a | dbcol_b
dataA1 | dataB1
dataA1 | dataB2
dataA2 | dataB3
dataA2 | dataB4
dataA2 | dataB5

我想解析这样的struturized数组:

arcol_a | arcol_b
dataA1 | dataB1
---------- | dataB2
dataA2 | dataB3
---------- | dataB4
---------- | dataB5

感谢

3 个答案:

答案 0 :(得分:3)

这应该这样做:

$desired_array = array();
foreach ($query_output as $value)
{
  $desired_array[$value['arcol_a']][] = $value['arcol_b'];
}

这样,您可以将第二列中的每个值添加到索引为第一列的数组中。

答案 1 :(得分:1)

  1. 制作一个名为的哈希表 arcol_a_array
  2. 循环你的 数据。对于每一行,请查看并查看 如果当前arcol_a值是关键值 arcol_a_array数组。如果不, 添加它。此键的值应该是包含一个元素的数组 - 当前行的值arcol_b
  3. 如果arcol_a哈希表中存在arcol_a_array值,请修改数组以添加arcol_b中的新值。

答案 2 :(得分: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']);
  }
}