"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > डॉट नोटेशन कुंजियों के साथ बहुआयामी PHP सारणियों को 2D सारणियों में कैसे परिवर्तित करें?

डॉट नोटेशन कुंजियों के साथ बहुआयामी PHP सारणियों को 2D सारणियों में कैसे परिवर्तित करें?

2025-01-15 को प्रकाशित
ब्राउज़ करें:342

How to Convert Multidimensional PHP Arrays to 2D Arrays with Dot Notation Keys?

बहुआयामी PHP सारणियों को डॉट नोटेशन कुंजियों के साथ 2डी सारणियों में बदलें

बहुआयामी PHP सारणियों को डॉट नोटेशन कुंजियों के साथ 2डी सारणियों में समतल करना फायदेमंद हो सकता है विभिन्न परिदृश्य. यह आपको डॉट नोटेशन का उपयोग करके नेस्टेड सरणी मानों तक निर्बाध रूप से पहुंचने की अनुमति देता है, जो कोड पठनीयता और रखरखाव को बढ़ाता है। वह फ़ंक्शन जो इस रूपांतरण को सुंदर ढंग से प्राप्त कर सकता है:

$result = array(); $ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray)); foreach ($leafValue के रूप में ritit) { $कुंजियाँ = सरणी(); foreach (रेंज(0, $ritit->getDepth()) $depth के रूप में) { $कुंजियाँ[] = $ritit->getSubIterator($गहराई)->कुंजी(); } $परिणाम[जुड़ें('.', $कुंजियाँ)] = $leafValue; }

स्पष्टीकरण:

$result = array();
$ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray));

foreach ($ritit as $leafValue) {
    $keys = array();
    foreach (range(0, $ritit->getDepth()) as $depth) {
        $keys[] = $ritit->getSubIterator($depth)->key();
    }
    $result[join('.', $keys)] = $leafValue;
}
RecursiveIteratorIterator और RecursiveArrayIterator कक्षाओं का उपयोग नेस्टेड सरणी के माध्यम से पुनरावर्ती रूप से पुनरावृत्त करने के लिए किया जाता है। वर्तमान कुंजी को कैप्चर करने के लिए RecursiveArrayIterator की कुंजी विधि का उपयोग किया जाता है सरणी का।

getSubIterator($depth) विधि का उपयोग एक विशिष्ट गहराई पर उप-पुनरावर्तक को पुनः प्राप्त करने के लिए किया जाता है, जो हमें नेस्टेड सरणियों के माध्यम से पुनरावृत्त करने की अनुमति देता है।

सीमा(0, $ ritit->getDepth()) फ़ंक्शन गहराई की एक सरणी बनाता है, जो सबसे भीतरी सरणी से सबसे बाहरी सरणी तक जाती है।
  • Join('.', $keys) फ़ंक्शन एक विभाजक के रूप में एक डॉट(.) के साथ सरणी कुंजियों को जोड़ता है, जिससे डॉट नोटेशन कुंजी बनती है।
  • परिणामी कुंजी-मूल्य जोड़ी $result सरणी में संग्रहीत होती है।
  • आउटपुट:
  • यह फ़ंक्शन डॉट नोटेशन के साथ वांछित 2डी सरणी उत्पन्न करेगा कुंजियाँ:
$newArray = array( 'key1' => 'value1', 'key2.subkey' => 'subkeyval', 'key3' => 'value3', 'key4.subkey4.subsubkey4' => 'subsubkeyval4', 'key4.subkey4.subsubkey5' => 'subsubkeyval5', 'key4.subkey5' => 'subkeyval5' );

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3