php二维数组难题求解决

表结构:idfidvname10湖北省21宜昌市32长阳县40上海市54黄浦区现告知行id=3,要求得到完整区域的二维数组,用一个带有递归的方法得到:array([0]=... 表结构:
id fid vname
1 0 湖北省
2 1 宜昌市
3 2 长阳县
4 0 上海市
5 4 黄浦区

现告知行id=3,要求得到完整区域的二维数组,用一个带有递归的方法得到:
array([0]=>array([0]=>1 [1]=>湖北省) [1]=>array(([0]=>2 [1]=>宜昌市) [2]=>array(([0]=>3 [1]=>长阳县))

目前我类中的方法是这样写的:
function Get_ID_Vname($id){
$row=$this->conn->prepare("select * from table where id=$id");
$row->execute();
$rs=$row->fetchall();

$arr[]=array($rs[0][0],$rs[0][2]);
if($rs[0][1]!=0){
$arr[]=$this->Get_ID_Vname($rs[0][1]);
}

return $arr;
}

可是里面出现了三维数组,顺序也是倒的:
Array ( [0] => Array ( [0] => 3 [1] => 长阳县 ) [1] => Array ( [0]
=> Array ( [0] => 2 [1] => 宜昌市 ) [1] => Array ( [0] => Array (
[0] => 1 [1] => 湖北省 ) ) ) )

怎么办呢,用什么方解决呢?在下小菜,没有分了,望大虾指点一下,万分感谢!
说明一下:字段 fid 是上级的ID,也就是区域的父ID,为0的表示是省级行政区域

这位仁兄,感谢你的耐心回答,
可就是不能得到你上面写的那个正确的二维数组,现在有两种解决办法,一是重新构造一个能得到你写的那样的二维数组,二是能不能在我这个方法的基础上通过整理得到一个和你写的一样的二维数组。
可惜这两个办法我都不会,望指教。
展开
 我来答
夐小栩
推荐于2016-03-21 · TA获得超过197个赞
知道小有建树答主
回答量:136
采纳率:66%
帮助的人:69.2万
展开全部
select * from table where id=$id order by id,

需要排序一下就可以了
更多追问追答
追问
这个查询只有一个结果,不需要排序啊
追答
$arr=Array ( [0] => Array ( [0] => 3 [1] => 长阳县 ) [1] => Array ( [0] 
=> Array ( [0] => 2 [1] => 宜昌市 ) [1] => Array ( [0] => Array (
[0] => 1 [1] => 湖北省 ) ) ) )

用foreach 整理一下
$newArr=array();
foreach($arr as $key=>$val){
$newArr[$val[0]]=$val[1];
}
ksort($newArr);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式