PHP multidimensional array to html with recursion

vili

I have an multidimensional array and two functions for parsing throw the array. I want to receive multilevel unordered list. I have a mistake with html tags, but I can't find. Array is:

Array
(
    [2] => Array
        (
            [id] => 2
            [parent_id] => 0
            [name] => task2
            [childs] => Array
                (
                    [1] => Array
                        (
                            [id] => 1
                            [parent_id] => 2
                            [name] => task1
                        )
                )
          )
        [3] => Array
        (
            [id] => 3
            [parent_id] => 0
            [name] => task3
            [childs] => Array
                (
                    [4] => Array
                        (
                            [id] => 4
                            [parent_id] => 3
                            [name] => task4
                        )
                    [5] => Array
                        (
                            [id] => 5
                            [parent_id] => 3
                            [name] => task5
                            [childs] => Array
                                (
                                    [6] => Array
                                        (
                                            [id] => 6
                                            [parent_id] => 5
                                            [name] => task6
                                        )
                                 )
                        )
                )
        )
 )

The correct function is:

function formatHtmlARC11($array) {

foreach ($array as $k => $v) {

    if (is_array($v['childs']) && !empty($v['childs'])) {
       echo $v['id']; 
       $sub=$this->formatHtmlARC11($v['childs']);
    } else {
       echo  $v['id'];
    }
  }
  return $var;
}

My formatHtml function with a problem is:

function formatHtmlARC($array,$bul) {
     $htmlcode .='<ul>';
    if($bul==true){
        $htmlcode .='</ul>';  
        $bul=false;
    }

    foreach ($array as $k => $v) {
        if (is_array($v['childs']) && !empty($v['childs'])) {
            $htmlcode .='<li>';  
            $htmlcode .= $v['id']; 
            $htmlcode .='</li>';
            $bul=true;
            $sub=$this->formatHtmlARC($v['childs'], $bul);
        } else {
            $htmlcode .='<li>';  
            $htmlcode .= $v['id']; 
             $htmlcode .='</li>';
         }
       $htmlcode .='</ul>';
    }
    return $htmlcode;
   }  
Sergiu Paraschiv

Your code seems to have a lot of issues and is very hard to follow.

I'd go about it in a simpler manner:

$a = [
    ['id' => 1, 'childs' => [
        ['id' => 11],
        ['id' => 12]
    ]],
    ['id' => 2, 'childs' => [
        ['id' => 21],
        ['id' => 22, 'childs' => [
            ['id' => 221],
            ['id' => 222]
        ]]
    ]]
];

function makeListItems($a) {
    $out = '';
    foreach($a as $item) {
        $out .= '<li>';
        $out .= $item['id'];
        if(array_key_exists('childs', $item)) {
            $out .= makeList($item['childs']);
        }
        $out .= '</li>';
    }

    return $out;
}

function makeList($a) {
    $out = '<ul>';
    $out .= makeListItems($a);
    $out .= '</ul>';

    return $out;
}

echo makeList($a);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Multidimensional array to array in PHP

분류에서Dev

Sort a multidimensional array in PHP

분류에서Dev

Transform a multidimensional array in php

분류에서Dev

Multidimensional Array Listing Printing Php

분류에서Dev

PHP Advanced multidimensional array sorting

분류에서Dev

PHP Write to a Multidimensional Array at 2 points in time

분류에서Dev

PHP multidimensional array value replace with another value

분류에서Dev

php multidimensional array path segment combination loop

분류에서Dev

How to delete an element inside a multidimensional array in PHP?

분류에서Dev

PHP multidimensional array sort matching values

분류에서Dev

Php merge duplicate array values in a multidimensional array php

분류에서Dev

How to save multidimensional array to a flat text file - PHP

분류에서Dev

Ajax Accessing a multidimensional array returned from PHP in JSON

분류에서Dev

Merge Two PHP Arrays into Multidimensional Array in Quadruped Jumps

분류에서Dev

Filtering a Cell Array with Recursion

분류에서Dev

MultiDimensional Array with Foreach

분류에서Dev

multidimensional array with keys

분류에서Dev

How to Display multidimensional Array?

분류에서Dev

Make multidimensional array to string

분류에서Dev

Add a string to multidimensional array

분류에서Dev

Access multidimensional array value

분류에서Dev

Multidimensional Array Search

분류에서Dev

Sanitize & desanitize multidimensional array

분류에서Dev

javascript sum multidimensional array

분류에서Dev

Multidimensional array to one dimensional array

분류에서Dev

php unique multidimensional array by keeping entry with the highes value from one dimension?

분류에서Dev

Get the value of array in multidimensional-array in array

분류에서Dev

Casting a multidimensional array to a multidimensional array of it's superclass in c++

분류에서Dev

How to push data to a multidimensional array?

Related 관련 기사

  1. 1

    Multidimensional array to array in PHP

  2. 2

    Sort a multidimensional array in PHP

  3. 3

    Transform a multidimensional array in php

  4. 4

    Multidimensional Array Listing Printing Php

  5. 5

    PHP Advanced multidimensional array sorting

  6. 6

    PHP Write to a Multidimensional Array at 2 points in time

  7. 7

    PHP multidimensional array value replace with another value

  8. 8

    php multidimensional array path segment combination loop

  9. 9

    How to delete an element inside a multidimensional array in PHP?

  10. 10

    PHP multidimensional array sort matching values

  11. 11

    Php merge duplicate array values in a multidimensional array php

  12. 12

    How to save multidimensional array to a flat text file - PHP

  13. 13

    Ajax Accessing a multidimensional array returned from PHP in JSON

  14. 14

    Merge Two PHP Arrays into Multidimensional Array in Quadruped Jumps

  15. 15

    Filtering a Cell Array with Recursion

  16. 16

    MultiDimensional Array with Foreach

  17. 17

    multidimensional array with keys

  18. 18

    How to Display multidimensional Array?

  19. 19

    Make multidimensional array to string

  20. 20

    Add a string to multidimensional array

  21. 21

    Access multidimensional array value

  22. 22

    Multidimensional Array Search

  23. 23

    Sanitize & desanitize multidimensional array

  24. 24

    javascript sum multidimensional array

  25. 25

    Multidimensional array to one dimensional array

  26. 26

    php unique multidimensional array by keeping entry with the highes value from one dimension?

  27. 27

    Get the value of array in multidimensional-array in array

  28. 28

    Casting a multidimensional array to a multidimensional array of it's superclass in c++

  29. 29

    How to push data to a multidimensional array?

뜨겁다태그

보관