दिलचस्प पोस्ट
सत्र के अपहरण को रोकने का सबसे अच्छा तरीका क्या है? एक्सेल स्प्रेडशीट कॉलम SQL सर्वर डेटाबेस में आयात करें PHP में एक एसोसिएटिव सरणी को सॉर्ट करना Nltk या python का उपयोग कर स्टॉप शब्द कैसे निकालें ASP.net MVC 3 jQuery सत्यापन; अविश्वसनीय OnKeyUp अक्षम करें? UITabelbar को एक UILabel जोड़ना यदि कोई सिंक्रनाइज़ (यह) का उपयोग कर सकता है तो एक रीट्रेंट लॉक का उपयोग क्यों करें? मुझे OSV पर JAVA_HOME को क्या सेट करना चाहिए? मैं अपने स्थानीय उपकरण से अपने एंड्रॉइड डिवाइस तक कैसे पहुंच सकता हूं? एनजी-एप और डेटा-एनजी-एप के बीच अंतर क्या है? आईफोन छवि खींच (तिरछा) स्थाई / स्थगित होने पर महत्वपूर्ण परिवर्तन स्थान एपीआई के लिए व्यवहार? फिट करने के लिए एक UILabel आकार आप जावास्क्रिप्ट के साथ सी.एस.एस. नियम मानों को कैसे पढ़ते हैं? मैं विंडोज 7 में एक फ़ोल्डर में लिखने के लिए asp.net अनुमति कैसे दे सकता हूँ?

एक विशेष मूल्य से एक बहुआयामी सरणी समूह?

उम्मीद है, मैं यह सही ढंग से समझा सकता हूं …

मेरे पास एक बहुआयामी सरणी है और मैं चाबी के मूल्य के अनुसार उन्हें समूह बनाने की कोशिश कर रहा हूं

इसलिए, मैं उन्हें स्तर के आधार पर समूह की कोशिश कर रहा हूं, लेकिन मैं वास्तव में स्तर पहले से नहीं जानता होगा। तो, ऐसा नहीं है कि मैं इसे लूप के लिए रख सकता हूं और $ i <7 कहता हूं, क्योंकि मुझे नहीं पता होगा कि स्तर की कुंजी के लिए अधिकतम मूल्य 7 है, और, स्पष्ट रूप से, मुझे यकीन नहीं है कि मैं कैसे मुझे ऐसा करने की आवश्यकता होगी भले ही मैंने किया …

Array ( [0] => Array ( [cust] => XT8900 [type] => standard [level] => 1 ) [1] => Array ( [cust] => XT8944 [type] => standard [level] => 1 ) [2] => Array ( [cust] => XT8922 [type] => premier [level] => 3 ) [3] => Array ( [cust] => XT8816 [type] => permier [level] => 3 ) [4] => Array ( [cust] => XT7434 [type] => standard [level] => 7 ) ) 

क्या मैं उत्पादन की उम्मीद कर रहा हूँ:

 Array ( [1] => Array ( [0] => Array ( [cust] => XT8900 [type] => standard ) [1] => Array ( [cust] => XT8944 [type] => standard ) ) [3] => Array ( [2] => Array ( [cust] => XT8922 [type] => premier ) [3] => Array ( [cust] => XT8816 [type] => permier ) ) [7] => Array ( [4] => Array ( [cust] => XT7434 [type] => standard ) ) ) 

वेब के समाधान से एकत्रित समाधान "एक विशेष मूल्य से एक बहुआयामी सरणी समूह?"

आपको पहले स्तर पर उन्हें समूह की जरूरत है

सरणी में लूप के लिए विदेशी मुद्रा का प्रयोग करें यदि स्तर पिछले आइटम के साथ समान है तो उस सरणी के साथ समूह करें

  $templevel=0; $newkey=0; $grouparr[$templevel]=""; foreach ($items as $key => $val) { if ($templevel==$val['level']){ $grouparr[$templevel][$newkey]=$val; } else { $grouparr[$val['level']][$newkey]=$val; } $newkey++; } print($grouparr); 

प्रिंट का आउटपुट ($ grouparr); आपके लिए आशा की गई प्रारूप की तरह दिखेंगे

आप भी कोशिश कर सकते हैं

 print($grouparr[7]); 

प्रदर्शन करेंगे

  [7] => Array ( [4] => Array ( [cust] => XT7434 [type] => standard ) ) 

या

 print($grouparr[3]); 

प्रदर्शन करेंगे

 [3] => Array ( [2] => Array ( [cust] => XT8922 [type] => premier ) [3] => Array ( [cust] => XT8816 [type] => permier ) ) 

सबसे अच्छा तरीका है, यदि प्रारंभिक सरणी के निर्माण पर आपके पास नियंत्रण है, तो आप शुरुआत में जैसे ही प्रविष्टियां जोड़ते हैं, जैसी चीजों को सेट करते हैं।

यदि नहीं तो सॉर्ट करने के लिए एक अस्थायी सरणी बनाएँ:

 foreach ($input_arr as $key => &$entry) { $level_arr[$entry['level']][$key] = $entry; } 

आपको वह फॉर्म जो आपको चाहिए था और जो कुछ भी एक साथ संदर्भित करता है।

पहली जगह में सरणी का निर्माण करें, यद्यपि संभवतः सभी संभव हो।

 function group_assoc($array, $key) { $return = array(); foreach($array as $v) { $return[$v[$key]][] = $v; } return $return; } //Group the requests by their account_id $account_requests = group_assoc($requests, 'account_id'); 

एक समान समस्या के लिए मैंने एक समाधान के रूप में उभरा है, एक फ़ंक्शन के रूप में लिपटे:

 function arraySort($input,$sortkey){ foreach ($input as $key=>$val) $output[$val[$sortkey]][]=$val; return $output; } 

$ Myarray को "नामांकित" कुंजी के अनुसार क्रमबद्ध करने के लिए ऐसा करें:

 $myArray = arraySort($myArray,'level'); 

या यदि आप इसे एक फ़ंक्शन के रूप में नहीं चाहते हैं, तो केवल एक बार उपयोग के लिए, यह $ myNewArray $ myArray से कुंजी 'स्तर' द्वारा समूहीकृत होगा

 foreach ($myArray as $key=>$val) $myNewArray[$val['level']][]=$val; 
  $result = array(); foreach ($yourArrayList as $data) { $id = $data['level']; if (isset($result[$id])) { $result[$id][] = $data; } else { $result[$id] = array($data); } } 
 function _group_by($array,$key,$keyName) { $return = array(); foreach($array as $val) { $return[$keyName.$val[$key]][] = $val; } return $return; } //end of function