Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. <?php
  2.  
  3.  
  4. $langs = [
  5. [1,"Frontend", 0],
  6. [2,"Backend", 0],
  7. [3,"Angular", 1],
  8. [4,"Angular 1", 3],
  9. [5,"Vue", 1],
  10. [6,"React", 1],
  11. [7,"PHP", 2],
  12. [8,"Laravel", 7],
  13. [9,"Angular 1.8", 4]
  14. ];
  15.  
  16.  
  17. //Recursive generating childs function
  18. function generateAllChilds($id, $ar, $n){
  19. $childs = [];
  20. for($i = 0; $i < $n; $i++){
  21. if($id == $ar[$i][2]){
  22. array_push($childs, (object)[
  23. "id" => $ar[$i][0],
  24. "name" => $ar[$i][1],
  25. "childs" => generateAllChilds($ar[$i][0], $ar , $n)
  26. ]);
  27. }
  28. }
  29. return $childs;
  30. }
  31.  
  32. function langsToArray($langArray){
  33. $ret = [];
  34. $len = count($langArray);
  35.  
  36. //Getting root parents
  37. for($i = 0; $i < $len; $i++){
  38. if($langArray[$i][2] == 0){
  39. array_push($ret, (object)[
  40. "id" => $langArray[$i][0],
  41. "name" => $langArray[$i][1],
  42. "childs" => generateAllChilds($langArray[$i][0],$langArray, $len)
  43. ]);
  44. }
  45. }
  46. return $ret;
  47. }
  48.  
  49. echo "<pre>";
  50. print_r(langsToArray($langs));
  51. echo "<pre>";
  52.  
  53. echo $json = json_encode(langsToArray($langs));
  54. echo "<script>console.log('".$json."');</script>";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement