2013-11-15 13 views
0

请我有表“数据”MySQL的得到的结果,如在阵的阵

status name 
------------ 
b  X 
a  E 
a  B 
b  I 

,我想获得数组是这样的:

array(
    'a'=> array('B', 'E'), 
    'b'=> array('I', 'X') 
) 

我应该怎么写查询得到这个?正如你所看到的,一切都应该按字母顺序排列。

+0

可能重复的[I如何可以模拟在MySQL数组变量?](http://stackoverflow.com/questions/12176709/how-can-i-simulate-an-array-variable-in- mysql) – Air

+0

我想你想在PHP中的数组?你试过什么了? –

+0

是的,在PHP中。我可以在php中为每个mysql记录构建数组(如果存在于数组中,如果不存在,则添加它),但是当我有30 000条记录时,我希望有更简单的解决方案。可能最好的应该是直接在mysql查询中执行它。但我不知道如何关联和分组这些字段 - – peter

回答

0

好吧,我做了这个很好的功能,根据需要对我的东西进行排序。希望它能帮助别人。

function sort_status_name($data) { 
    $pole = array(); 

    foreach ($data as $item) 
    { 
    if (array_key_exists($item->status, $pole)) { 
     if (!in_array($item->name, $pole[$item->status])) { 
      array_push($pole[$item->status], $item->name); 
     }  
    } 
    else 
    { 
     $pole[$item->status] = array(); 
     array_push($pole[$item->status], $item->name); 
    } 
    } 

    return $pole; 

}