Guest User

Untitled

a guest
Jun 25th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. $parent_mc_id = 15; //id родителя
  2. $relarr = []; //конечный одномерный массив
  3. $ctr = Array //входной многомерный массив
  4. (
  5. [0] => stdClass Object
  6. (
  7. [mc_id] => 4
  8. [rel_id] => 2,3
  9. [ctr] => stdClass Object
  10. (
  11. [0] => stdClass Object
  12. (
  13. [mc_id] => 6
  14. [rel_id] => 2,3
  15. )
  16.  
  17. [1] => stdClass Object
  18. (
  19. [mc_id] => 2
  20. [rel_id] => 1,2
  21. )
  22.  
  23. [2] => stdClass Object
  24. (
  25. [mc_id] => 6
  26. [rel_id] => 2,3
  27. )
  28.  
  29. [3] => stdClass Object
  30. (
  31. [mc_id] => 2
  32. [rel_id] => 1,2
  33. )
  34.  
  35. )
  36.  
  37. )
  38.  
  39. [1] => stdClass Object
  40. (
  41. [mc_id] => 6
  42. [rel_id] => 1
  43. [ctr] => stdClass Object
  44. (
  45. )
  46.  
  47. )
  48.  
  49. );
  50.  
  51. parseArray ($mc_id, $ctr, $relarr);
  52. function parseArray ($mc_id, $ctr, $relarr){
  53. foreach($ctr as $key => $ctr_object){
  54. $c_mc_id = $ctr_object->mc_id;//id дочернего элемента
  55. $rel_arr = explode(',',$ctr_object->rel_id);
  56. $relation = [];
  57. foreach($rel_arr as $key => $rel_id){
  58. $relation['mrt_id'] = $rel_id;
  59. $relation['mr_agent'] = $mc_id;
  60. $relation['mr_contragent'] = $c_mc_id;
  61. $relation['mr_status'] = 1;
  62. array_push($relarr, $relation);
  63. }
  64. $subctr = (array)$ctr_object->ctr;//пытась унать уесть ли внук
  65. foreach($subctr as $subctr_obj){
  66. if(!empty($subctr_obj)){
  67. parseAgent($c_mc_id, $subctr_obj, $relarr);//если есть то снова вызываем эту функцию
  68. }
  69. }
  70. }
  71. return $relarr;
  72. }
  73.  
  74. $subctr = (array)$ctr_object->ctr;//пытась унать уесть ли внук
  75. foreach($subctr as $subctr_obj){
  76. if(!empty($subctr_obj)){
  77. parseAgent($c_mc_id, $subctr_obj, $relarr);//если есть то снова вызываем эту функцию
  78. }
  79. }
  80.  
  81. (
  82. [0] => Array
  83. (
  84. [mrt_id] => 2
  85. [mr_agent] => 1
  86. [mr_contragent] => 4
  87. [mr_status] => 1
  88. )
  89.  
  90. [1] => Array
  91. (
  92. [mrt_id] => 3
  93. [mr_agent] => 1
  94. [mr_contragent] => 4
  95. [mr_status] => 1
  96. )
  97.  
  98. [2] => Array
  99. (
  100. [mrt_id] => 1
  101. [mr_agent] => 1
  102. [mr_contragent] => 6
  103. [mr_status] => 1
  104. )
  105.  
  106. )
Add Comment
Please, Sign In to add comment