2012-04-07 3 views
1

をグループ化された私は、データベースから結果が一緒に配列を入れ

をフェッチして少しstruggelingは、私はいくつかの行

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')) 
+0

どのように配列を生成していますか?データベースからのものであれば、 '$ arr [] = $ row'を使って各行を空の配列に追加することができます。 – Bojangles

答えて

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変数にキーを定義する本当の必要はありません。コードを読みやすく管理しやすくするためには、一般的な構造についてコメントするだけで十分です。

+0

アレイのプリペアは冗長です。各特有の 'group'はwhileループで自動的にそれを行います。 –

+0

@MikePurcellしかし、私はそれらを使う前に変数を定義するのと同じように、コードを読みやすくしていると思います。特にあなたがグループをどのように見えるのかを最初に知っているときは。 – poncha

+0

うわー、ありがとう、とにかく、試しとエラーの約2時間後に、すごく、とても助かりました。 – daiikota

関連する問題