[PHP-users 17826]Re: DB取得配列をカスタマイズしたい。

古川敦史 agl @ violet.plala.or.jp
2003年 9月 11日 (木) 23:06:46 JST


古川@フリーランスです。

        Thu, 11 Sep 2003 11:50:25 +0000 の
        [PHP-users 17822] DB取得配列をカスタマイズしたい。
        に関するメールにお答えします。

> いつもお世話になっております。きしかわです。
> 
> 配列に関して質問です。
> DBから取得したデータが以下の配列に入っているとします。
> 
> $aDbData[0]["A_id"]="A001";
> $aDbData[0]["B_id"]="B001";
> 
> $aDbData[1]["A_id"]="A001";
> $aDbData[1]["B_id"]="B002";
> 
> $aDbData[2]["A_id"]="A002";
> $aDbData[2]["B_id"]="B003";
> 
> $aDbData[3]["A_id"]="A002";
> $aDbData[3]["B_id"]="B004";
> 
> $aDbData[4]["A_id"]="A003";
> $aDbData[4]["B_id"]="B005";
> 
> $aDbData[4]["A_id"]="A003";
> $aDbData[4]["B_id"]="B006";

A_idをキーにした連想配列にB_idのデータをArray()にすればいいと思います。

サンプルが以下のとおり、

$aDbData[0]["A_id"]="A001";
$aDbData[0]["B_id"]="B001";

$aDbData[1]["A_id"]="A001";
$aDbData[1]["B_id"]="B002";

$aDbData[2]["A_id"]="A002";
$aDbData[2]["B_id"]="B003";

$aDbData[3]["A_id"]="A002";
$aDbData[3]["B_id"]="B004";

$aDbData[4]["A_id"]="A003";
$aDbData[4]["B_id"]="B005";

$aDbData[4]["A_id"]="A003";
$aDbData[4]["B_id"]="B006";


$bDbData = array();
for ($i=0; $i<count($aDbData); $i++) {
	$bDbData[$aDbData[$i]["A_id"]][] = $aDbData[$i]["B_id"];
}

echo "<PRE>bDbData = ", var_dump($bDbData), "</PRE>\n";

以上、参考になれば


-- /Private
Furukawa Atsushi / 古川 敦史
E-Mail: agl @ violet.plala.or.jp
MOBILE: 090-6959-6225
FAX: 020-4622-3018
HomePage: http://www1.plala.or.jp/AGL/





PHP-users メーリングリストの案内