पर आधारित लूप के माध्यम से बहुआयामी सरणी बनाएं, एक बहुआयामी सरणी के लिए गिनती और foreach के सही संयोजन के साथ कुछ परेशानी आ रही है।PHP -
मैं वर्तमान में मेरे db के प्राप्त परिणाम से एक साहचर्य सरणी बनाने के लिए निम्नलिखित कर रहा हूँ:
$sql = "SELECT g.id, g.shortname FROM games g ORDER BY g.id ASC";
$query = $this->db->query($sql);
if($query->num_rows() > 0):
foreach($query->result() as $row):
$data[$row->id] = $row->shortname;
endforeach;
return $data;
else:
return false;
endif;
निश्चित रूप से
यह पैदा करता है निम्नलिखित सरणी (जो ठीक काम करता है; अर्द्ध अशुद्ध कोड):
array ([1] => CoolGame, [2] => AnotherGame, [3] => BetterGame, [4] => UglyGame)
.... और इतने
लेकिन क्या मैं हो जाता है ताकि तरह एक बहुआयामी सरणी के माध्यम से समूहों में परिणाम (गिनती var/सीमक के आधार पर) को तोड़ने है क्या करना चाहते हैं पर:
array (Group 1 =>
array([1] => CoolGame [2] => AnotherGame),
Group 2 =>
array([3] => BetterGame [4] => UglyGame)
)
ताकि उदाहरण में
, मेरे $depth_count = 2;
मामले में किसी को भी रुचि रखते हैं, मैं इस एक बहु के लिए स्वत: जनरेट <optgroup>
टैग के साथ काम करने के लिए सीआई के फार्म सहायक के form_multiselect() फ़ंक्शन के माध्यम से चयन कर रहा हूँ है। इसके लिए अनुमति देने के लिए मेरे PHP को ट्वीव करने में कुछ मदद चाहिए। धन्यवाद!
+1, टॉच। मैं उस समारोह के बारे में भूल गया। मुझे वास्तव में यह पसंद है, अगर यह मनमाने ढंग से समूहबद्ध है। –
+1 array_chunk (सरणी के साथ खेलते समय बहुत उपयोगी फ़ंक्शन :)) –
कूल सामान। पूरी तरह से काम करता है और इस तथ्य को छोड़कर पूरा समाधान होगा कि यह संख्यात्मक रूप से अनुक्रमित सरणी कुंजी बनाता है। मैं वास्तव में तथ्य के बाद सरणी पर फिर से शुरू कर सकता हूं और प्रत्येक कुंजी नाम में "समूह" को प्रीपेड कर सकता हूं। – k00k