[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 メーリングリストの案内