Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $parent_mc_id = 15; //id родителя
- $relarr = []; //конечный одномерный массив
- $ctr = Array //входной многомерный массив
- (
- [0] => stdClass Object
- (
- [mc_id] => 4
- [rel_id] => 2,3
- [ctr] => stdClass Object
- (
- [0] => stdClass Object
- (
- [mc_id] => 6
- [rel_id] => 2,3
- )
- [1] => stdClass Object
- (
- [mc_id] => 2
- [rel_id] => 1,2
- )
- [2] => stdClass Object
- (
- [mc_id] => 6
- [rel_id] => 2,3
- )
- [3] => stdClass Object
- (
- [mc_id] => 2
- [rel_id] => 1,2
- )
- )
- )
- [1] => stdClass Object
- (
- [mc_id] => 6
- [rel_id] => 1
- [ctr] => stdClass Object
- (
- )
- )
- );
- parseArray ($mc_id, $ctr, $relarr);
- function parseArray ($mc_id, $ctr, $relarr){
- foreach($ctr as $key => $ctr_object){
- $c_mc_id = $ctr_object->mc_id;//id дочернего элемента
- $rel_arr = explode(',',$ctr_object->rel_id);
- $relation = [];
- foreach($rel_arr as $key => $rel_id){
- $relation['mrt_id'] = $rel_id;
- $relation['mr_agent'] = $mc_id;
- $relation['mr_contragent'] = $c_mc_id;
- $relation['mr_status'] = 1;
- array_push($relarr, $relation);
- }
- $subctr = (array)$ctr_object->ctr;//пытась унать уесть ли внук
- foreach($subctr as $subctr_obj){
- if(!empty($subctr_obj)){
- parseAgent($c_mc_id, $subctr_obj, $relarr);//если есть то снова вызываем эту функцию
- }
- }
- }
- return $relarr;
- }
- $subctr = (array)$ctr_object->ctr;//пытась унать уесть ли внук
- foreach($subctr as $subctr_obj){
- if(!empty($subctr_obj)){
- parseAgent($c_mc_id, $subctr_obj, $relarr);//если есть то снова вызываем эту функцию
- }
- }
- (
- [0] => Array
- (
- [mrt_id] => 2
- [mr_agent] => 1
- [mr_contragent] => 4
- [mr_status] => 1
- )
- [1] => Array
- (
- [mrt_id] => 3
- [mr_agent] => 1
- [mr_contragent] => 4
- [mr_status] => 1
- )
- [2] => Array
- (
- [mrt_id] => 1
- [mr_agent] => 1
- [mr_contragent] => 6
- [mr_status] => 1
- )
- )
Add Comment
Please, Sign In to add comment