fork(1) download
  1. <?php
  2.  
  3. function recusive_list($items) {
  4. $html = '<ul>';
  5. foreach ($items as $item) {
  6. $html .= '<li>';
  7. $html .= '<a target="_blank" href="' .$item['href']. '">' .$item['name']. '</a>';
  8. $html .= recusive_list($item['childs']). '</li>';
  9. }
  10. $html .= '</ul>';
  11. return $html;
  12. }
  13.  
  14. $items = [
  15. [
  16. 'href' => 'www.item1',
  17. 'name' => 'Item1',
  18. 'childs' => [
  19. [
  20. 'href' => 'www.item1.1',
  21. 'name' => 'Item1.1',
  22. 'childs' => []
  23. ]
  24. ]
  25. ],
  26. [
  27. 'href' => 'www.item2',
  28. 'name' => 'Item2',
  29. 'childs' => [
  30. [
  31. 'href' => 'www.item2.1',
  32. 'name' => 'Item2.1',
  33. 'childs' => [
  34. [
  35. 'href' => 'www.item2.1.1',
  36. 'name' => 'Item2.1.1',
  37. 'childs' => []
  38. ],
  39. [
  40. 'href' => 'www.item2.1.2',
  41. 'name' => 'Item2.1.2',
  42. 'childs' => [
  43. [
  44. 'href' => 'www.item2.1.2.1',
  45. 'name' => 'Item2.1.2.1',
  46. 'childs' => []
  47. ]
  48. ]
  49. ]
  50. ]
  51. ]
  52. ]
  53. ],
  54. [
  55. 'href' => 'www.item3',
  56. 'name' => 'Item3',
  57. 'childs' => []
  58. ],
  59. ];
  60.  
  61. echo recusive_list($items);
Success #stdin #stdout 0.02s 23664KB
stdin
Standard input is empty
stdout
<ul><li><a target="_blank" href="www.item1">Item1</a><ul><li><a target="_blank" href="www.item1.1">Item1.1</a><ul></ul></li></ul></li><li><a target="_blank" href="www.item2">Item2</a><ul><li><a target="_blank" href="www.item2.1">Item2.1</a><ul><li><a target="_blank" href="www.item2.1.1">Item2.1.1</a><ul></ul></li><li><a target="_blank" href="www.item2.1.2">Item2.1.2</a><ul><li><a target="_blank" href="www.item2.1.2.1">Item2.1.2.1</a><ul></ul></li></ul></li></ul></li></ul></li><li><a target="_blank" href="www.item3">Item3</a><ul></ul></li></ul>