2012-08-31 59 views
0

我從一個MySQL表像這樣讀取數據:閱讀列

while($row=mysql_fetch_assoc($result)) 
{ 
    $tmp[]=$row; 
} 

它讀取整行的tmp數組中的單個項目,但我想所有的a值單列在一個單獨的陣列中。 e.g如果我的表是:

 ------------------- 
     Honda Suzuki BMW 
    ------------------- 
     Accord Alto abc 
     Acty Baleno xyz 

我得到這個:

 [{"Honda":"Accord","Suzuki":"Alto","BMW":"abc"}, 
     {"Honda":"Acty","Suzuki":"Baleno","BMW":xyz"}] 

,但我想這一點:

 [ Honda:{Accord,Acty}, 
     Suzuki:{Alto,Baleno}, 
     BMW:{abc,xyz} 
    ] 

有人能告訴我如何組織這樣的數據?

回答

2

我懷疑你的意思是

{ "Honda":["Accord","Acty"], 
    "Suzuki":["Alto","Baleno"], 
    "BMW":["abc","xyz"] 
} 

,你會被

$tmp=array(); 
while($row=mysql_fetch_assoc($result)) 
    foreach($row as $name=>$value) 
    //Next 2 lines updated after input from comment 
    if (!$value) continue; 
    else if (!isset($tmp[$name])) $tmp[$name]=array($value); 
    else $tmp[$name][]=$value; 
$tmp=json_encode($tmp); 
+0

得很好!非常感謝。我很愚蠢,不斷浪費時間。但是您的解決方案還包含空值。我如何避免這種情況,例如,如果單元格的值爲null,那麼它不包含在JSON數據中? –

+0

更新了我的答案 - 我猜你還想壓制空字符串(不僅僅是NULL) –