У меня есть следующий массив:
$ 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...
Любая помощь будет оценена! Заранее спасибо!
Для этого вам нужна рекурсивная функция, а не цикл. Таким образом, он будет обрабатывать любую глубину вашего исходного массива.
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
зависимости от того, нужен ли вам ассоциативный или индексированный массив.