php多个for并列,多个并列分类怎么用递归遍历出其所有子分并统计各自子分类个数...

从数据库的一张表中获取了一个数组,为便于分析进行了切割,切割后数组如下:

$arr = array(

0 =>

array(

'uid' => 5,

'username' => '',

'password' => '',

'user_status' => 1,

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '13863810574',

'realname' => '汪精卫',

'level' => '普通会员',

'trade_account' => '568050269',

'reg_time' => null,

'recom_account' => '243556',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

),

1 =>

array(

'uid' => '6',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18807556392',

'realname' => '周杰伦',

'level' => '普通会员',

'trade_account' => '12435356',

'reg_time' => null,

'recom_account' => '243556',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

),

2 =>

array(

'uid' => '7',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18316850912',

'realname' => '奥巴马',

'level' => '普通会员',

'trade_account' => '83475535',

'reg_time' => null,

'recom_account' => '834755351',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

),

3 =>

array(

'uid' => '8',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879126845',

'realname' => '大卫',

'level' => '普通会员',

'trade_account' => '834755351',

'reg_time' => null,

'recom_account' => '154548',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

),

4 =>

array(

'uid' => '9',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '黄建',

'level' => '普通会员',

'trade_account' => '154548',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

),

5 =>

array(

'uid' => '10',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '张科',

'level' => '普通会员',

'trade_account' => '9527',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

),

);

现在想对该多维数组进行处理,规则为:当a键的recom_account的值等于b键的trade_account时,则a键值对为b键值对的直接子分类,当c键的recom_account等于a键的trade_account时,则c键值对为b键值对的间接子分类,每个键值对(分类)可以有多个直接子分类,但只对应一个直接父分类,也就是trade_account是唯一的,recom_account不是唯一的。期望返回的结果是:每个键值对增加一个count键,其值为所有直接子分类的个数,一个childlist键,其值为一个多维数组,记录子分类的所有信息,一个total_count键,其值为所有子分类的个数。haschild字段为1表示该分类有子分类(包括直接子分类与间接子分类),为0则没有子分类。如上面的数组,期望生成如下的格式。

$list = array(

0 =>

array(

'uid' => 5,

'username' => '',

'password' => '',

'user_status' => 1,

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '13863810574',

'realname' => '汪精卫',

'level' => '普通会员',

'trade_account' => '568050269',

'reg_time' => null,

'recom_account' => '243556',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

'count' => '2',

'total_count' => '4',

'childlist' => array(

9 => array(//9为子分类的uid

'uid' => '9',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '黄建',

'level' => '普通会员',

'trade_account' => '154548',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

'count' => 1,

'total_count' => 2,

'childlist' => array(

8 => array(

'uid' => '8',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879126845',

'realname' => '大卫',

'level' => '普通会员',

'trade_account' => '834755351',

'reg_time' => null,

'recom_account' => '154548',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

'count' => 1,

'total_count'=>1,

'childlist' => array(

7 => array(//7为子分类的uid

'uid' => '7',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18316850912',

'realname' => '奥巴马',

'level' => '普通会员',

'trade_account' => '83475535',

'reg_time' => null,

'recom_account' => '834755351',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

'count' => 0,

'total_count' => 0,

'childlist' => null,

)

)

)

)

),

10 => array(

'uid' => '10',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '张科',

'level' => '普通会员',

'trade_account' => '9527',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

)

),

1 =>

array(

'uid' => '6',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18807556392',

'realname' => '周杰伦',

'level' => '普通会员',

'trade_account' => '12435356',

'reg_time' => null,

'recom_account' => '243556',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

2 =>

array(

'uid' => '7',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18316850912',

'realname' => '奥巴马',

'level' => '普通会员',

'trade_account' => '83475535',

'reg_time' => null,

'recom_account' => '834755351',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

3 =>

array(

'uid' => '8',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879126845',

'realname' => '大卫',

'level' => '普通会员',

'trade_account' => '834755351',

'reg_time' => null,

'recom_account' => '154548',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

4 =>

array(

'uid' => '9',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '黄建',

'level' => '普通会员',

'trade_account' => '154548',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

5 =>

array(

'uid' => '10',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '张科',

'level' => '普通会员',

'trade_account' => '9527',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

);

已参考http://www.thinkphp.cn/topic/...进行调试,但未成功获取返回值。

回复内容:

从数据库的一张表中获取了一个数组,为便于分析进行了切割,切割后数组如下:

$arr = array(

0 =>

array(

'uid' => 5,

'username' => '',

'password' => '',

'user_status' => 1,

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '13863810574',

'realname' => '汪精卫',

'level' => '普通会员',

'trade_account' => '568050269',

'reg_time' => null,

'recom_account' => '243556',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

),

1 =>

array(

'uid' => '6',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18807556392',

'realname' => '周杰伦',

'level' => '普通会员',

'trade_account' => '12435356',

'reg_time' => null,

'recom_account' => '243556',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

),

2 =>

array(

'uid' => '7',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18316850912',

'realname' => '奥巴马',

'level' => '普通会员',

'trade_account' => '83475535',

'reg_time' => null,

'recom_account' => '834755351',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

),

3 =>

array(

'uid' => '8',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879126845',

'realname' => '大卫',

'level' => '普通会员',

'trade_account' => '834755351',

'reg_time' => null,

'recom_account' => '154548',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

),

4 =>

array(

'uid' => '9',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '黄建',

'level' => '普通会员',

'trade_account' => '154548',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

),

5 =>

array(

'uid' => '10',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '张科',

'level' => '普通会员',

'trade_account' => '9527',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

),

);

现在想对该多维数组进行处理,规则为:当a键的recom_account的值等于b键的trade_account时,则a键值对为b键值对的直接子分类,当c键的recom_account等于a键的trade_account时,则c键值对为b键值对的间接子分类,每个键值对(分类)可以有多个直接子分类,但只对应一个直接父分类,也就是trade_account是唯一的,recom_account不是唯一的。期望返回的结果是:每个键值对增加一个count键,其值为所有直接子分类的个数,一个childlist键,其值为一个多维数组,记录子分类的所有信息,一个total_count键,其值为所有子分类的个数。haschild字段为1表示该分类有子分类(包括直接子分类与间接子分类),为0则没有子分类。如上面的数组,期望生成如下的格式。

$list = array(

0 =>

array(

'uid' => 5,

'username' => '',

'password' => '',

'user_status' => 1,

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '13863810574',

'realname' => '汪精卫',

'level' => '普通会员',

'trade_account' => '568050269',

'reg_time' => null,

'recom_account' => '243556',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

'count' => '2',

'total_count' => '4',

'childlist' => array(

9 => array(//9为子分类的uid

'uid' => '9',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '黄建',

'level' => '普通会员',

'trade_account' => '154548',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

'count' => 1,

'total_count' => 2,

'childlist' => array(

8 => array(

'uid' => '8',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879126845',

'realname' => '大卫',

'level' => '普通会员',

'trade_account' => '834755351',

'reg_time' => null,

'recom_account' => '154548',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

'count' => 1,

'total_count'=>1,

'childlist' => array(

7 => array(//7为子分类的uid

'uid' => '7',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18316850912',

'realname' => '奥巴马',

'level' => '普通会员',

'trade_account' => '83475535',

'reg_time' => null,

'recom_account' => '834755351',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

'count' => 0,

'total_count' => 0,

'childlist' => null,

)

)

)

)

),

10 => array(

'uid' => '10',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '张科',

'level' => '普通会员',

'trade_account' => '9527',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

)

),

1 =>

array(

'uid' => '6',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18807556392',

'realname' => '周杰伦',

'level' => '普通会员',

'trade_account' => '12435356',

'reg_time' => null,

'recom_account' => '243556',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

2 =>

array(

'uid' => '7',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18316850912',

'realname' => '奥巴马',

'level' => '普通会员',

'trade_account' => '83475535',

'reg_time' => null,

'recom_account' => '834755351',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

3 =>

array(

'uid' => '8',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879126845',

'realname' => '大卫',

'level' => '普通会员',

'trade_account' => '834755351',

'reg_time' => null,

'recom_account' => '154548',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

4 =>

array(

'uid' => '9',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '黄建',

'level' => '普通会员',

'trade_account' => '154548',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '1',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

5 =>

array(

'uid' => '10',

'username' => '',

'password' => '',

'user_status' => '1',

'login_number' => null,

'last_login_time' => null,

'last_login_ip' => null,

'nickname' => '',

'mobile' => '18879701814',

'realname' => '张科',

'level' => '普通会员',

'trade_account' => '9527',

'reg_time' => null,

'recom_account' => '568050269',

'total' => null,

'is_apply' => '0',

'is_checked' => '0',

'haschild' => '0',

'count' => 0,

'total_count' => 0,

'childlist' => null,

),

);

已参考http://www.thinkphp.cn/topic/...进行调试,但未成功获取返回值。

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值