2012-12-15 10 views
6

मैं निम्नलिखित सरणी है: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 
    } 
} 

मेरे अंतिम लक्ष्य है इस डेटा के साथ unordered सूचियों और सूचियों (उल, ली) बनाएँ। सरणी में अधिक डेटा जोड़ा जाएगा क्योंकि डेटाबेस अपडेट हो जाता है, इसलिए यह बढ़ता रहेगा। मेरा लक्ष्य सरणी के माध्यम से लूप करना है और इसे निम्न कोड बनाना है और डेटा बढ़ने के रूप में सूचियां बनाने में सक्षम होना चाहिए। मैं 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... 

किसी भी मदद की सराहना की जाएगी! आपका अग्रिम में ही बहुत धन्यवाद!

उत्तर

1

मेरे लिए एक सरल पर्याप्त प्रत्यावर्तन की तरह लगता है:

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 का उपयोग करना चाहिए, इस पर निर्भर करता है कि आपको एक सहयोगी या अनुक्रमित सरणी की आवश्यकता है या नहीं।

+0

ये सुझाव दोनों महान हैं। मेरी समस्या यह है कि सूचियां बढ़ने जा रही हैं। एक लक्ष्य तालिका और अवसर तालिका है जो डेटा को mysql में खींच लिया जा रहा है। इसलिए, सीधे एक लक्ष्य के तहत एक बच्चा/उप लक्ष्य या अवसर हो सकता है। उदाहरण के लिए: 100,000 आय => नौकरी से 30,000 (यह एक लक्ष्य है) 100,000 आय => बॉब को किराये के घर बेचते हैं (यह एक मौका है)। इसके अतिरिक्त, जैसे-जैसे बच्चे के लक्ष्यों को गहराई से ड्रिल किया जाता है, उनके पास उनके लक्ष्यों और अवसरों से जुड़े बच्चे के लक्ष्य हो सकते हैं। – m1e1b1

+0

इसके अलावा, मैंने सरणी को assoc में बदल दिया। यहां आउटपुट है जो मैं अब डंप से प्राप्त कर रहा हूं: सरणी (6) {[0] => स्ट्रिंग (23) "$ 100,000 कैश फ्लो 2013" [1] => सरणी (3) {["Goal_ID"] => स्ट्रिंग (1) "2" ["मौका"] => स्ट्रिंग (13) "आयरन ओक बेचें" ["ओआईडी"] => स्ट्रिंग (2) "10"} [2] => सरणी (1) {["गतिविधि "] => स्ट्रिंग (32)" उससे पूछें कि क्या वह खरीदना चाहती है "} [3] => सरणी (3) {[" लक्ष्य_आईडी "] => स्ट्रिंग (1)" 2 "[" मौका "] => स्ट्रिंग (8) "कार बेचें" ["ओआईडी"] => स्ट्रिंग (2) "11"} [4] => सरणी (1) {["गतिविधि"] => स्ट्रिंग (52) "रॉय को वापस देखने के लिए कॉल करें अगर वह इसे खरीदना चाहेगा "} [5] => सरणी (1) {[" tot_opp "] => NULL}} – m1e1b1

+0

वैसे भी मदद के लिए बहुत बहुत धन्यवाद! तुम दोनों ने मुझे वहां से बाहर निकल लिया है जहां मैं था! – m1e1b1

1

आपको इसके लिए एक रिकर्सिव फ़ंक्शन चाहिए, लूप नहीं। इस तरह यह आपके स्रोत सरणी की किसी भी गहराई को संभालेगा।

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

ये सुझाव दोनों महान हैं। मेरी समस्या यह है कि सूचियां बढ़ने जा रही हैं। एक लक्ष्य तालिका और अवसर तालिका है जो डेटा को mysql में खींच लिया जा रहा है। इसलिए, सीधे एक लक्ष्य के तहत एक बच्चा/उप लक्ष्य या अवसर हो सकता है। उदाहरण के लिए: 100,000 आय => नौकरी से 30,000 (यह एक लक्ष्य है) 100,000 आय => बॉब को किराये के घर बेचते हैं (यह एक मौका है)। इसके अतिरिक्त, जैसे-जैसे बच्चे के लक्ष्यों को गहराई से ड्रिल किया जाता है, उनके पास उनके लक्ष्यों और अवसरों से जुड़े बच्चे के लक्ष्य हो सकते हैं। – m1e1b1

+0

यदि आप तत्वों को क्रम में रखते हैं तो यह कार्य करेगा। यही है, यदि किसी लक्ष्य वाले तत्व का पालन बच्चे/उप लक्ष्यों के साथ किया जाएगा, तो यह प्राकृतिक लगेगा, है ना? – Ranty

संबंधित मुद्दे