2012-12-15 42 views
6

tôi có các mảng sau:tạo ul và li sử dụng một mảng đa chiều trong php

$ tree_array

Khi tôi làm một var_dump, tôi nhận được:

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 
    } 
} 

mục tiêu cuối cùng của tôi là tạo danh sách và danh sách không theo thứ tự (ul, li) với dữ liệu này. Sẽ có nhiều dữ liệu được thêm vào mảng khi cơ sở dữ liệu được cập nhật, vì vậy nó sẽ tiếp tục phát triển. Mục tiêu của tôi là lặp qua mảng và tạo ra đoạn mã sau và có thể tiếp tục tạo danh sách khi dữ liệu phát triển. Tôi mới vào php và không chắc chắn làm thế nào để thực hiện điều này.

<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... 

Mọi trợ giúp sẽ được đánh giá cao! Cảm ơn bạn trước!

Trả lời

1

Có vẻ như một đệ quy đơn giản với tôi:

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

Dường như bạn có một số giá trị trùng lặp trên đó. Bạn đang sử dụng mysql_fetch_array? Bạn nên sử dụng mysql_fetch_assoc hoặc mysql_fetch_row tùy thuộc vào việc bạn cần một mảng liên kết hay chỉ mục.

+0

Những đề xuất này đều tuyệt vời. Vấn đề tôi đang gặp phải là danh sách sẽ phát triển sâu. Có một bảng mục tiêu và bảng cơ hội dữ liệu đang được kéo từ trong mysql. Do đó, trực tiếp dưới một mục tiêu có thể là một đứa trẻ/mục tiêu phụ hoặc một cơ hội. Ví dụ: 100.000 thu nhập => 30,000 từ công việc (đây là mục tiêu) 100.000 thu nhập => bán nhà cho thuê cho bob (đây là cơ hội). Ngoài ra, khi các mục tiêu trẻ em đi sâu hơn, chúng có thể có mục tiêu con gắn liền với chúng và cơ hội. – m1e1b1

+0

Ngoài ra, tôi đã thay đổi mảng thành assoc. Đây là đầu ra tôi nhận được từ dump bây giờ: array (6) {[0] => string (23) "$ 100,000 Cash Flow 2013" [1] => array (3) {["Goal_ID"] => string (1) "2" ["Cơ hội"] => chuỗi (13) "Bán Iron Oak" ["OID"] => chuỗi (2) "10"} [2] => mảng (1) {["Hoạt động "] => string (32)" hỏi cô ấy nếu cô ấy muốn mua "} [3] => mảng (3) {[" Goal_ID "] => chuỗi (1)" 2 "[" Cơ hội "] => string (8) "Sell Car" ["OID"] => chuỗi (2) "11"} [4] => mảng (1) {["Hoạt động"] => chuỗi (52) "Gọi lại Roy để xem nếu anh ta muốn mua nó "} [5] => mảng (1) {[" tot_opp "] => NULL}} – m1e1b1

+0

Cảm ơn bạn rất nhiều vì đã giúp đỡ! Cả hai người đã giúp tôi vượt qua nơi tôi đang ở! – m1e1b1

1

Bạn cần có hàm đệ quy cho điều đó chứ không phải vòng lặp. Bằng cách này, nó sẽ xử lý bất kỳ chiều sâu nào của mảng nguồn của bạn.

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); 
+0

Những đề xuất này đều tuyệt vời. Vấn đề tôi đang gặp phải là danh sách sẽ phát triển sâu. Có một bảng mục tiêu và bảng cơ hội dữ liệu đang được kéo từ trong mysql. Do đó, trực tiếp dưới một mục tiêu có thể là một đứa trẻ/mục tiêu phụ hoặc một cơ hội. Ví dụ: 100.000 thu nhập => 30,000 từ công việc (đây là mục tiêu) 100.000 thu nhập => bán nhà cho thuê cho bob (đây là cơ hội). Ngoài ra, khi các mục tiêu trẻ em đi sâu hơn, chúng có thể có mục tiêu con gắn liền với chúng và cơ hội. – m1e1b1

+0

Đó là những gì chức năng sẽ làm nếu bạn giữ nguyên tố theo thứ tự. Đó là, nếu một yếu tố với một mục tiêu sẽ được theo sau bởi một yếu tố với các mục tiêu con/phụ, nó sẽ trông tự nhiên, phải không? – Ranty