2017-01-31 5 views
0

У меня есть этот массив:jstree не работает должным образом

$arr = array(
    '17-GUIDO HUMBERTO -3 ', 
    array( 
     '2-José-3' 
    ), 
    array(
     array(
      '18-juan andres-3' 
     ), 
    ), 
    '17-luis -3 ' 
); 

У меня есть эта функция:

function listArr($arr) { 
    $html = '<ul>'; 
    foreach ($arr as $item) { 
     if (is_array($item)) { 
      $html .= listArr($item); // <<< here is the recursion 
     } else { 
      $html .= '<li>' . $item . '</li>'; 
     } 
    } 

    $html .= '</ul>'; 
    return $html; 
} 
echo(listArr($tree)); 

Затем я добавляю HTML:

<div class="row"> 
      <div class="col-md-12"> 
       <div class="row"> 
        <div id="jstree"> 
         <?php 
          echo(listArr($tree)); 
         ?> 
        </div> 
       </div> 
      </div> 
      <!-- /.col-md-12 --> 
     </div> 

Как я могу поместить 18-juan andres-3 под 17-GUIDO HUMBERTO -3 И 17-luis -3 под 18-juan andres-3

17-luis -3Под18-juan andres-3Под17-GUIDO HUMBERTO -3(Это верхняя)

Как я должен поместить массив, чтобы правильно работать с jstree? Пожалуйста, помогите Спасибо!

+0

если это jstree то я думаю, что у вас есть некоторые JQuery код. Также на основе документации вам нужно создать массив в том же формате, какой должен был jstree –

+0

@Anant Да, мой jquery-код: $ ('# jstree'). Jstree(); больше не надо –

ответ

0

Проблема заключается в вашем массиве, потому что они находятся на разном уровне. Chage ваш массив следующим образом:

$arr = array(
     '17-GUIDO HUMBERTO -3 ', 
     array(
       '2-Jose-3' 
     ), 
     array(
       'label', 
       array(
         '18-juan andres-3', 
         array('17-luis -3 '), 
       ), 
     ), 

); 

и я не вижу $tree объявлены.

вызов, как:

echo(listArr($arr)); 

ВЫВОД:

17-GUIDO HUMBERTO -3 
    -- 2-Jose-3 
    -- label 
    --- 18-juan andres-3 
    ---- 17-luis -3 
Смежные вопросы