Tuesday, 15 May 2012

php - Finding a path in a multidimensional array for a certain ID -


मेरे पास एक सरणी है जो इस तरह से संग्रहीत है:

  [0] = & gt; अर्रे ([आईडी] = & gt; 1 [cat_name] = & gt; c1) [1] = & gt; Array ([id] = & gt; 5 [cat_name] = & gt; c21) [1] Array ([id] = & gt; 2 [cat_name] = & gt; c2 [copii] = & gt; अर्रे ([0] = & gt; = & Gt; अर्रे ([आईडी] = & gt; 6 [cat_name] = & gt; सी 22))) [2] = & gt; Array ([id] = & gt; 3 [cat_name] = & gt; c3 [copii] = & gt; अर्रे ([0] = & gt; अरे ([आईडी] = & gt; 7 [cat_name] = & gt; c31 [copii] = एरे ([0] = & gt; ऐरे ([आईडी] = & gt; 9 [cat_name] => सी 311))) [1] = & gt; अरे ([आईडी] = & gt; 8 [cat_name] = & gt; C32)))  

मैं एक निश्चित आईडी के लिए मार्ग खोजने का एक आसान तरीका ढूंढने की कोशिश कर रहा हूं I अब मैं सभी संभव सरणियों के माध्यम से पुनरावृति और मार्ग ढूंढने के लिए foreach का उपयोग कर रहा हूं।

उदाहरण:

  id = 1: route [0] [id] = 1, मार्ग [0] [cat_name] = सी 1 आईडी = 5: मार्ग [0] [आईडी] = 2, मार्ग [0] [cat_name] = सी 2 मार्ग [1] [आईडी] = 5, मार्ग [1] [cat_name] = सीए 21 आईडी = 9: मार्ग [0] [आईडी] = 3, मार्ग [0] [cat_name] = सी 3 मार्ग [1] [आईडी] = 7, मार्ग [1] [cat_name] = c31 मार्ग [2] [आईडी] = 9, मार्ग [2] [cat_name] = c311  

यदि मेरा प्रश्न कोई मतलब नहीं है, तो मैं इसका एक अच्छा समाधान खोजने के लिए खर्च किए गए घंटे पर दोष देता हूं ...

कोड का एक गुच्छा पोस्ट करने के बदले में, मैं आपको सुझाव देता था कि आप पुनरावर्तन पर पढ़ते हैं अगर आप नहीं करते हैं इसके बारे में पता है PHP, पुनरावर्ती पर बहुत अच्छा नहीं है, लेकिन यह वास्तव में आपका एकमात्र विकल्प है।

असल में आप एक फ़ंक्शन कॉल करेंगे जो कि सरणी, खोजने के लिए आईडी और पथ का प्रतिनिधित्व करने वाला स्ट्रिंग / एरे होता है। प्रारंभिक पैरामीटर के लिए रिक्त स्ट्रिंग या रिक्त एरे के साथ कॉल करें।

फ़ंक्शन में आप ऐसा करेंगे:

  • शीर्ष कोड के शीर्ष स्तर के माध्यम से एक foreach चलाएं > $ सरणी
  • यदि आप $ id को ढूंढ रहे हैं, तो $ पथ लौटाएं।
  • < Li> यदि कोई सरणी मान एक उप ऐरे है, तो वर्तमान आईडी नोड को जोड़कर फ़ंक्शन को फिर से कॉल करें - जैसे कि $ foundPath = findPath ($ array, $ id, $ path)
  • यदि $ foundPath कुछ देता है, तो आपको अपना रास्ता मिल गया है और वह वापस लौट सकता है।
  • अगर उसे कुछ भी नहीं मिला ( $ पाया पाथ नीचे के रूप में झूठी या शून्य है), इसे छोड़ दें और लूप के अगले पुनरावृत्त पर जाएं।
  • पाश के अंत में, अगर आपको कुछ नहीं मिला है, तो झूठी वापसी करें या नल।

उम्मीद है कि मदद करता है!


No comments:

Post a Comment