बहुआयामी सारणियों की सहयोगी पंक्तियों की तुलना
आपके पास दो बहुआयामी सारणियां हैं, $पेजआईडी और $पेरेंटपेज, जहां प्रत्येक पंक्ति कॉलम के साथ एक रिकॉर्ड का प्रतिनिधित्व करती है 'आईडी', 'लिंकलेबल' और 'यूआरएल'। आप $pageids में मौजूद पंक्तियों को ढूंढना चाहते हैं, लेकिन $parentpage में नहीं, गायब पंक्तियों के साथ प्रभावी ढंग से एक सरणी ($pageWithNoChildren) बनाना चाहते हैं।
हालांकि, इन arrays पर सीधे array_diff_assoc() का उपयोग करना अपेक्षा के अनुरूप काम नहीं करेगा। क्योंकि यह प्राथमिक सरणी कुंजियों की तुलना करता है, नेस्टेड पंक्तियों की सामग्री की नहीं। नेस्टेड पंक्तियों की तुलना करने के लिए, हम पहले उन्हें array_map() और क्रमबद्ध() फ़ंक्शन का उपयोग करके एक-आयामी सरणी में परिवर्तित कर सकते हैं।
$serializedPageids = array_map('serialize', $pageids); $serializedParentpage = array_map('serialize', $parentpage);
उन्हें परिवर्तित करने के बाद, हम इन एक-आयामी सरणियों की तुलना करने और अंतर प्राप्त करने के लिए array_diff() का उपयोग कर सकते हैं।
$serializedDifference = array_diff($serializedPageids, $serializedParentpage);
अंत में, हम परिवर्तित कर सकते हैं array_map() और unserialize() फ़ंक्शन का उपयोग करके बहुआयामी सरणियों में क्रमबद्ध अंतर वापस।
$pageWithNoChildren = array_map('unserialize', $serializedDifference);
यह प्रक्रिया हमें सामग्री की तुलना करने की अनुमति देती है नेस्टेड पंक्तियों में से और उन पंक्तियों को निकालें जो $pageids में मौजूद हैं लेकिन $parentpage में नहीं, जिसके परिणामस्वरूप अपेक्षित आउटपुट:
array ( 0 => array ( 'id' => 1, 'linklabel' => 'Home', 'url' => 'home', ), 3 => array ( 'id' => 6, 'linklabel' => 'Logo Design', 'url' => 'logodesign', ), 4 => array ( 'id' => 15, 'linklabel' => 'Content Writing', 'url' => 'contentwriting', ), )
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3