1

データベースフェッチの結果に少し苦労しています

私はいくつかの行を持っているとしましょう

   array('id'=>1, 'surname'=>'rossi', 'name'=>'mario', 'group'=>'admin'), 
   array('id'=>2, 'surname'=>'rossi', 'name'=>'giovanni', 'group'=>'user'), 
   array('id'=>3, 'surname'=>'verdi', 'name'=>'luigi', 'group'=>'user'), 
   array('id'=>4, 'surname'=>'verdi', 'name'=>'franco', 'group'=>'guest'), 
   array('id'=>5, 'surname'=>'bianchi', 'name'=>'mario', 'group'=>'guest') 

これらの5つの行をグループ化された配列に入れるにはどうすればよいですか?

例:

user = array(
   array('id'=>2, 'surname'=>'rossi', 'name'=>'giovanni', 'group'=>'user'), 
   array('id'=>3, 'surname'=>'verdi', 'name'=>'luigi', 'group'=>'user'))
guest = array(
   array('id'=>4, 'surname'=>'verdi', 'name'=>'franco', 'group'=>'guest'), 
   array('id'=>5, 'surname'=>'bianchi', 'name'=>'mario', 'group'=>'guest')) 
admin = array(
   array('id'=>1, 'surname'=>'rossi', 'name'=>'mario', 'group'=>'admin'))
4

1 に答える 1

5
// get query result
$result = mysql_query(...);

// prepare the target array
// it will hold user groups having group name as key
// eg. "user" => Array(), "guest" => Array()
$users = Array();

// whlile fetching rows from the result, add each row into $row["group"] key of target
while($row = mysql_fetch_assoc($result))
   $users[$row["group"]][] = $row;

// free the mysql result
mysql_free_result($result);

更新$user: ターゲット変数でキーを定義する必要はありません。コードを読みやすく管理しやすくするには、一般的な構造についてコメントするだけで十分です。

于 2012-04-07T22:49:35.547 に答える