2012-08-31 61 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) –