数据库查询结果构建多维数组我想将前面数据库查询出来的结果构建一个多维数组,数据库查询出来的第一个结果对应第一层嵌套,第二个结果对应第二层嵌套,如何做,事先声明我是菜鸟,请多指点// 查询变量$sql1 = "select remark,name from arp_careset where typegroup ='dissect-position' order by id"; $rs1 = mysql_query($sql1); while($r1 = mysql_fetch_assoc($rs1)) { echo $r1['name']; $sql = "select group_concat(name) as name from arp_careset where typegroup 'dissect-position' and typegroup like '%".$r1["remark"]."%' order by id";$rs = mysql_query($sql); while($r = mysql_fetch_array($rs)) { $ar = explode(',', $r['name']); echo join(' ', $ar); } }//构建数组$mem = array(array( lang_show(''),array(// 嵌套开始array(lang_show('account_manager'),//第二层嵌套array('group_list.php,1',)//第二层嵌套结束),// 嵌套结束) ),);登录后复制------解决方案--------------------你的数据组织给你的读出带来了很多不便这样写$rs = mysql_query("select name, SUBSTRING_INDEX(typegroup,'-',-1) as secondary, remark from arp_careset where SUBSTRING_INDEX(typegroup,'-',1)='dissect'");while($r = mysql_fetch_assoc($rs)) { echo $r['name']. ''; $rs1 = mysql_query("select name, SUBSTRING_INDEX(typegroup,'-',-1) as secondary, remark from arp_careset where SUBSTRING_INDEX(typegroup,'-',1)='$r[secondary]' and SUBSTRING_INDEX(typegroup,'-',-1) = '$r[remark]'"); while($r = mysql_fetch_assoc($rs1)) { echo $r['name'] . ' '; } echo '';}登录后复制体表营养状况 分泌物 被毛 皮肤 眼/眼眶 四肢/尾巴 乳腺 外生殖器 肛门 淋巴结腋窝淋巴结 颈部淋巴结 腹股沟淋巴结 肺部淋巴结 肠系淋巴结 头颈部眼睑/角膜/瞳孔 牙齿/牙龈 耳 鼻 脑膜/全脑 颅骨 唾液腺 食管 气管 甲状腺 胸部胸壁 横膈/纵膈 心脏 主动脉弓 肺及支气管 腹部腹腔 肠系膜 脾脏 胰 肾脏 ------解决方案--------------------为什么说数据组织的不好呢?主分组 typegroup 包含了两个类别信息而按“邻接列表算法”应该只包含一个类别信息从你的数据上看,需要通过 typegroup、remark 两个字段来唯一确认一个表象的归属这实际上就是“邻接列表算法”了虽然现在可以用 SUBSTRING_INDEX 函数去拆分 typegroup 来得到类别信息但 SUBSTRING_INDEX 函数是 mysql 专有的。如果因为某些原因,以后更换了数据库系统,那代码修改量就太大了虽然你可以将拆分的工作交给 php 完成,但众多的 like 将降低查询效率程序也显得比较臃肿------解决方案--------------------创建多维数组示意$res = array(); //这是结果数组$rs = mysql_query("select name, SUBSTRING_INDEX(typegroup,'-',-1) as secondary, remark from arp_careset where SUBSTRING_INDEX(typegroup,'-',1)='dissect'");while($r = mysql_fetch_assoc($rs)) { $tmp = array(); //初始化一个临时数组 $rs1 = mysql_query("select name, SUBSTRING_INDEX(typegroup,'-',-1) as secondary, remark from arp_careset where SUBSTRING_INDEX(typegroup,'-',1)='$r[secondary]' and SUBSTRING_INDEX(typegroup,'-',-1) = '$r[remark]'");
09-15 17:21