Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.61 KB | None | 0 0
  1. Array
  2. (
  3. [38] => Array
  4. (
  5. [name] => Categoria Raiz 1
  6. [link] => https://...
  7. [id_parent] => 0
  8. )
  9.  
  10. [205] => Array
  11. (
  12. [name] => Subcategoria 1
  13. [link] => https://...
  14. [id_parent] => 38
  15. )
  16.  
  17. [206] => Array
  18. (
  19. [name] => Subcategoria 2
  20. [link] => https://...
  21. [id_parent] => 38
  22. )
  23. [484] => Array
  24. (
  25. [name] => Categoria Raiz 2
  26. [link] => https://...
  27. [id_parent] => 0
  28. )
  29. [485] => Array
  30. (
  31. [name] => Subcategoria 3
  32. [link] => https://...
  33. [id_parent] => 484
  34. )
  35.  
  36. [39] => Array
  37. (
  38. [name] => categoria Raiz 3
  39. [link] => https://...
  40. [id_parent] => 0
  41. )
  42.  
  43. [147] => Array
  44. (
  45. [name] => Subcategoria 4
  46. [link] => https://...
  47. [id_parent] => 39
  48. )
  49. )
  50.  
  51. <?php
  52. foreach($array as $key => $value) { ?>
  53. <li data-id_parent="<?php echo $value['id_parent']; ?>">
  54. <a href="<?php echo $value['link']; ?>"><?php echo $value['name']; ?></a>
  55.  
  56. <?php
  57. if (!isset($id_anterior)) { ?>
  58. <ul>
  59. <?php } else {
  60. if ($id_anterior != $value['id_parent']) { ?>
  61. </ul>
  62. <ul>
  63. <?php }
  64. }
  65. ?>
  66. </li>
  67. <?php
  68.  
  69. $id_anterior = $key;
  70. }
  71. ?>
  72.  
  73. <li data-id_parent="0">
  74. <a href="https://...">Categoria Raiz 1</a>
  75. <ul>
  76. <li data-id_parent="38">
  77. <a href="https://...">Subcategoria 1</a>
  78. </li>
  79. <li data-id_parent="38">
  80. <a href="https://...">Subcategoria 2</a>
  81. </li>
  82. </ul>
  83. </li>
  84. <li data-id_parent="0">
  85. <a href="https://...">Categoria Raiz 2</a>
  86. <ul>
  87. <li data-id_parent="484">
  88. <a href="https://...">Subcategoria 3</a>
  89. </li>
  90. </ul>
  91. </li>
  92. <li data-id_parent="0">
  93. <a href="https://...">Categoria Raiz 3</a>
  94. <ul>
  95. <li data-id_parent="39">
  96. <a href="https://...">Subcategoria 4</a>
  97. </li>
  98. </ul>
  99. </li>
  100.  
  101. $menu = [
  102. 38 => [
  103. 'name' => 'Categoria Raiz 1',
  104. 'link' => 'https://...',
  105. 'id_parent' => 0
  106. ],
  107. 205 => [
  108. 'name' => 'Subcategoria 1',
  109. 'link' => 'https://...',
  110. 'id_parent' => 38
  111. ],
  112. 206 => [
  113. 'name' => 'Subcategoria 2',
  114. 'link' => 'https://...',
  115. 'id_parent' => 38
  116. ],
  117. 484 => [
  118. 'name' => 'Categoria Raiz 2',
  119. 'link' => 'https://...',
  120. 'id_parent' => 0
  121. ],
  122. 485 => [
  123. 'name' => 'Subcategoria 3',
  124. 'link' => 'https://...',
  125. 'id_parent' => 484
  126. ],
  127. 39 => [
  128. 'name' => 'Categoria Raiz 3',
  129. 'link' => 'https://...',
  130. 'id_parent' => 0
  131. ],
  132. 147 => [
  133. 'name' => 'Subcategoria 4',
  134. 'link' => 'https://...',
  135. 'id_parent' => 39
  136. ]
  137. ];
  138.  
  139. $organized = [];
  140.  
  141. foreach ($menu as $index => $item) {
  142. if (isset($organized[$item['id_parent']])) {
  143. $organized[$item['id_parent']]['child'][$index] = $item;
  144. } else {
  145. $item['child'] = [];
  146. $organized[$index] = $item;
  147. }
  148. }
  149.  
  150. array(3) {
  151. [38]=>
  152. array(4) {
  153. ["name"]=>
  154. string(16) "Categoria Raiz 1"
  155. ["link"]=>
  156. string(11) "https://..."
  157. ["id_parent"]=>
  158. int(0)
  159. ["child"]=>
  160. array(2) {
  161. [205]=>
  162. array(3) {
  163. ["name"]=>
  164. string(14) "Subcategoria 1"
  165. ["link"]=>
  166. string(11) "https://..."
  167. ["id_parent"]=>
  168. int(38)
  169. }
  170. [206]=>
  171. array(3) {
  172. ["name"]=>
  173. string(14) "Subcategoria 2"
  174. ["link"]=>
  175. string(11) "https://..."
  176. ["id_parent"]=>
  177. int(38)
  178. }
  179. }
  180. }
  181. [484]=>
  182. array(4) {
  183. ["name"]=>
  184. string(16) "Categoria Raiz 2"
  185. ["link"]=>
  186. string(11) "https://..."
  187. ["id_parent"]=>
  188. int(0)
  189. ["child"]=>
  190. array(1) {
  191. [485]=>
  192. array(3) {
  193. ["name"]=>
  194. string(14) "Subcategoria 3"
  195. ["link"]=>
  196. string(11) "https://..."
  197. ["id_parent"]=>
  198. int(484)
  199. }
  200. }
  201. }
  202. [39]=>
  203. array(4) {
  204. ["name"]=>
  205. string(16) "Categoria Raiz 3"
  206. ["link"]=>
  207. string(11) "https://..."
  208. ["id_parent"]=>
  209. int(0)
  210. ["child"]=>
  211. array(1) {
  212. [147]=>
  213. array(3) {
  214. ["name"]=>
  215. string(14) "Subcategoria 4"
  216. ["link"]=>
  217. string(11) "https://..."
  218. ["id_parent"]=>
  219. int(39)
  220. }
  221. }
  222. }
  223. }
  224.  
  225. function echoList($array) {
  226. echo '<ul>';
  227.  
  228. foreach($array as $item) {
  229. echo '<li data-id_parent="'.$item['id_parent'].'"><a href="'.$item['link'].'">'.$item['name'].'</a>';
  230.  
  231. if (isset($item['child']) && !empty($item['child'])) {
  232. echoList($item['child']);
  233. }
  234.  
  235. echo '</li>';
  236. }
  237.  
  238. echo '</ul>';
  239. }
  240.  
  241. echoList($organized);
  242.  
  243. <ul>
  244. <li data-id_parent="0">
  245. <a href="https://...">Categoria Raiz 1</a>
  246. <ul>
  247. <li data-id_parent="38"><a href="https://...">Subcategoria 1</a></li>
  248. <li data-id_parent="38"><a href="https://...">Subcategoria 2</a></li>
  249. </ul>
  250. </li>
  251. <li data-id_parent="0">
  252. <a href="https://...">Categoria Raiz 2</a>
  253. <ul>
  254. <li data-id_parent="484"><a href="https://...">Subcategoria 3</a></li>
  255. </ul>
  256. </li>
  257. <li data-id_parent="0">
  258. <a href="https://...">Categoria Raiz 3</a>
  259. <ul>
  260. <li data-id_parent="39"><a href="https://...">Subcategoria 4</a></li>
  261. </ul>
  262. </li>
  263. </ul>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement