2011-05-18 38 views
1

我的MySQL查詢輸出爲將冗餘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

這應做到:

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

這樣你在第二列中添加的每個值到一個數組與第一列的索引。

+0

這是最短的一行。謝謝^^ – bonn 2011-05-19 02:30:39

1
  1. 請叫 arcol_a_array一個哈希表。
  2. 循環訪問您的 數據。對於每一行,如果當前的arcol_a值是 ,arcol_a_array數組中的關鍵字,請檢查並查看 。如果沒有,請添加 。該鍵的值應該是一個包含一個元素的數組 - 當前行的值arcol_b
  3. 如果arcol_a_array散列表中存在arcol_a值,請修改該數組以添加arcol_b中的新值。
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']); 
    } 
}