создать ul и li, используя многомерный массив в php

У меня есть следующий массив:

$ tree_array

Когда я делаю var_dump, я получаю:

array(6) { [0]=> string(23) "$100,000 Cash Flow 2013" [1]=> array(6) { [0]=> string(1) "2" ["Goal_ID"]=> string(1) "2" [1]=> string(13) "Sell Iron Oak" ["Opportunity"]=> string(13) "Sell Iron Oak" [2]=> string(2) "10" ["OID"]=> string(2) "10" } [2]=> array(2) { [0]=> string(32) "ask her if she would like to buy" ["Activity"]=> string(32) "ask her if she would like to buy" } [3]=> array(6) { [0]=> string(1) "2" ["Goal_ID"]=> string(1) "2" [1]=> string(8) "Sell Car" ["Opportunity"]=> string(8) "Sell Car" [2]=> string(2) "11" ["OID"]=> string(2) "11" } [4]=> array(2) { [0]=> string(52) "Call Roy back to see if he would like to purchase it" ["Activity"]=> string(52) "Call Roy back to see if he would like to purchase it" } [5]=> array(1) { ["tot_opp"]=> NULL } } 

Моя конечная цель – создать неупорядоченные списки и списки (ul, li) с этими данными. При добавлении базы данных в массив будет добавлено больше данных, поэтому она будет продолжать расти. Моя цель состоит в том, чтобы перебрать массив и создать его следующий код и иметь возможность продолжать создавать списки по мере роста данных. Я новичок в php и не знаю, как это сделать.

 <ul> <li>$100,000 Cash Flow 2013</li> <ul> <li>Sell Iron Oak</li> <ul> <li>ask her if she would like to buy</li> </ul> <ul> <li>Sell Car</li> </ul>etc... 

Любая помощь будет оценена! Заранее спасибо!

Solutions Collecting From Web of "создать ul и li, используя многомерный массив в php"

Для этого вам нужна рекурсивная функция, а не цикл. Таким образом, он будет обрабатывать любую глубину вашего исходного массива.

 function make_list($arr) { $return = '<ul>'; foreach ($arr as $item) { $return .= '<li>' . (is_array($item) ? make_list($item) : $item) . '</li>'; } $return .= '</ul>'; return $return; } echo make_list($source_array); 

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

 function arrayToList($in) { echo "<ul>"; foreach($in as $v) { if( is_array($v)) arrayToList($v); else echo '<li>' . $v . '</li>'; } echo "</ul>"; } 

Похоже, что у вас есть несколько повторяющихся значений. Вы используете mysql_fetch_array ? Вы должны использовать mysql_fetch_assoc или mysql_fetch_row зависимости от того, нужен ли вам ассоциативный или индексированный массив.