PHP - циклический массив иерархии для отображения в опции выбора - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть такой объект иерархии. Я хочу отобразить в иерархии поле со списком ..

Я занимаюсь разработкой с использованием codeigniter.

Array
(
    [0] => stdClass Object
        (
            [ki_id] => 1
            [kf_id] => 1
            [ki_author] => 2
            [ki_name] => kakek
            [ki_uom] => percent
            [ki_level] => parent
            [ki_year_date] => 2018-01-01
            [ki_parent_id] => 
            [children] => Array
                (
                    [0] => stdClass Object
                        (
                            [ki_id] => 2
                            [kf_id] => 1
                            [ki_author] => 2
                            [ki_name] => ayah
                            [ki_uom] => percent
                            [ki_level] => child
                            [ki_year_date] => 2018-01-01
                            [ki_parent_id] => 1
                            [children] => Array
                                (
                                    [0] => stdClass Object
                                        (
                                            [ki_id] => 4
                                            [kf_id] => 1
                                            [ki_author] => 2
                                            [ki_name] => aku
                                            [ki_uom] => percent
                                            [ki_level] => child
                                            [ki_year_date] => 2018-01-01
                                            [ki_parent_id] => 2
                                            [children] => Array
                                                (
                                                    [0] => stdClass Object
                                                        (
                                                            [ki_id] => 7
                                                            [kf_id] => 1
                                                            [ki_author] => 2
                                                            [ki_name] => anak ku
                                                            [ki_uom] => percent
                                                            [ki_level] => child
                                                            [ki_year_date] => 2018-01-01
                                                            [ki_parent_id] => 4
                                                        )

                                                )

                                        )

                                    [1] => stdClass Object
                                        (
                                            [ki_id] => 6
                                            [kf_id] => 1
                                            [ki_author] => 2
                                            [ki_name] => adik
                                            [ki_uom] => percent
                                            [ki_level] => child
                                            [ki_year_date] => 2018-01-01
                                            [ki_parent_id] => 2
                                        )

                                )

                        )

                    [1] => stdClass Object
                        (
                            [ki_id] => 3
                            [kf_id] => 1
                            [ki_author] => 2
                            [ki_name] => paman
                            [ki_uom] => percent
                            [ki_level] => child
                            [ki_year_date] => 2018-01-01
                            [ki_parent_id] => 1
                            [children] => Array
                                (
                                    [0] => stdClass Object
                                        (
                                            [ki_id] => 5
                                            [kf_id] => 1
                                            [ki_author] => 2
                                            [ki_name] => keponakan
                                            [ki_uom] => percent
                                            [ki_level] => child
                                            [ki_year_date] => 2018-01-01
                                            [ki_parent_id] => 3
                                        )

                                )

                        )

                )

        )

);

как отобразить этот массив в поле со списком иерархии, как это, в HTML с рекурсивным циклом. Мне нужна помощь, кто может решить эту проблему

<option>- kakek</option> 
<option>-- ayah</option> 
<option>--- aku</option> 
<option>---- anakku</option> 
<option>--- adik ku</option> 
<option>-- paman</option> 
<option>--- keponakan</option> 

спасибо

1 Ответ

0 голосов
/ 29 апреля 2018

простая рекурсия должна сделать это

public function createTree($arrData, $level = 0)
{
    $level ++;
    foreach($arrData AS $obj)
    {
        echo '<option>'.str_repeat('-', $level).$obj->ki_name.'</option>';
        if (isset($obj->children) && is_array($obj->children))
        {
            $this->createTree($obj->children, $level);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...