[PHP-users 17825]Re: DB取得配列をカスタマイズしたい。
Akira Nakamura
nakamura @ yse.yokogawa.co.jp
2003年 9月 11日 (木) 22:29:24 JST
こんにちは、中村です。
DBから取得する配列は変更できないのでしょうか?
A_idで関連付けたいならA_idをキーにして配列を
構成すれば取り出すのが楽になります。
$aDbData["A001"][0]="B001";
$aDbData["A001"][1]="B002";
$aDbData["A002"][0]="B003";
$aDbData["A002"][1]="B004";
DBの取り出しを変更できないようでしたら、取得した配列を
foreach($aDbData as $val)
$tmpData[$val[A_id]][]=$val[B_id];
で、配列の構造を変えてしまうと以下の様になります。
--< 出力結果 >-----------------------------
var aAData = new Array();
aAData[0]=new Array("B001" , "B002" );
aAData[1]=new Array("B003" , "B004" );
aAData[2]=new Array("B005" , "B006" );
-------------------------------------------
--< ソース >-----------------------------
<?php
//
// test.php
//
$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[5]["A_id"]="A003"; #キーを4から5に変更しました
$aDbData[5]["B_id"]="B006"; #キーを4から5に変更しました
foreach($aDbData as $val)
$tmpData[$val[A_id]][]=$val[B_id];
$sJSTag="";
$sJSTag.="var aAData = new Array();\n" ;
$nI=0;
foreach($tmpData as $val) {
$sJSTag .= "aAData[$nI]=new Array(\"$val[0]\" , \"$val[1]\" );\n";
$nI++;
}
echo $sJSTag ;
?>
-------------------------------------------
--
nakamura
PHP-users メーリングリストの案内