분석을 용이하게 하기 위해 데이터베이스의 테이블에서 배열을 얻어 잘라냈습니다. 잘라낸 배열은 다음과 같습니다.
<code>$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', ), );</code>
이제 이 다차원 배열을 처리하려고 합니다. 규칙은 다음과 같습니다. 키 a의 recom_account 값이 키 b의 trade_account와 같으면 a의 키-값 쌍은 키의 직접적인 하위 범주입니다. -b의 값 쌍. 키 c의 recom_account가 키 a의 trade_account와 같을 때 키-값 쌍 c는 키-값 쌍 b의 간접 하위 카테고리입니다. 여러 개의 직접적인 하위 카테고리를 가질 수 있지만 하나의 직접적인 상위 카테고리에만 해당합니다. 즉, trade_account는 유일한 예입니다. recom_account는 고유하지 않습니다. 예상되는 반환 결과는 다음과 같습니다. 각 키-값 쌍은 값이 모든 직접 하위 범주의 수인 count 키, 값이 하위 범주의 모든 정보를 기록하는 다차원 배열인 하위 목록 키, 값이 다음과 같은 total_count 키를 추가합니다. 값은 모든 하위 범주의 수입니다. haschild 필드가 1이면 범주에 하위 범주(직접 하위 범주 및 간접 하위 범주 포함)가 있음을 나타내고 haschild 필드가 0이면 하위 범주가 없음을 나타냅니다. 위 배열과 마찬가지로 다음과 같은 형식을 생성할 것으로 예상됩니다.
$list = 배열(
<code> 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, ), ); </code>
디버깅을 위해 http://www.thinkphp.cn/topic/...을 참조했지만 반환 값을 얻지 못했습니다.
분석을 용이하게 하기 위해 데이터베이스의 테이블에서 배열을 얻어 잘라냈습니다. 잘라낸 배열은 다음과 같습니다.
<code>$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', ), );</code>
이제 이 다차원 배열을 처리하려고 합니다. 규칙은 다음과 같습니다. 키 a의 recom_account 값이 키 b의 trade_account와 같으면 a의 키-값 쌍은 키의 직접적인 하위 범주입니다. -b의 값 쌍. 키 c의 recom_account가 키 a의 trade_account와 같을 때 키-값 쌍 c는 키-값 쌍 b의 간접 하위 카테고리입니다. 여러 개의 직접적인 하위 카테고리를 가질 수 있지만 하나의 직접적인 상위 카테고리에만 해당합니다. 즉, trade_account는 유일한 예입니다. recom_account는 고유하지 않습니다. 예상되는 반환 결과는 다음과 같습니다. 각 키-값 쌍은 값이 모든 직접 하위 범주의 수인 count 키, 값이 하위 범주의 모든 정보를 기록하는 다차원 배열인 하위 목록 키, 값이 다음과 같은 total_count 키를 추가합니다. 값은 모든 하위 범주의 수입니다. haschild 필드가 1이면 범주에 하위 범주(직접 하위 범주 및 간접 하위 범주 포함)가 있음을 나타내고 haschild 필드가 0이면 하위 범주가 없음을 나타냅니다. 위 배열과 마찬가지로 다음과 같은 형식을 생성할 것으로 예상됩니다.
$list = 배열(
<code> 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, ), ); </code>
디버깅을 위해 http://www.thinkphp.cn/topic/...을 참조했지만 반환 값을 얻지 못했습니다.