मेरे पास निम्न सरणी है।PHP सॉर्टिंग बहुआयामी सरणी
Array (
[0] => Array ([id] => 5 [category_id] => 12)
[1] => Array ([id] => 3 [category_id] => 12)
[2] => Array ([id] => 9 [category_id] => 12)
[3] => Array ([id] => 4 [category_id] => 12)
)
मेरे पास निम्न सरणी है।PHP सॉर्टिंग बहुआयामी सरणी
Array (
[0] => Array ([id] => 5 [category_id] => 12)
[1] => Array ([id] => 3 [category_id] => 12)
[2] => Array ([id] => 9 [category_id] => 12)
[3] => Array ([id] => 4 [category_id] => 12)
)
आप इस
foreach($arr as $val) {
$ret[$val['id']] = $val['category_id'];
}
ksort($ret);
मामले में की तरह यह कर सकते हैं आप एक ही सरणी तो हल कर पाने के लिए आप निम्न कोड जोड़ सकते हैं चाहते हैं:
foreach($ret as $key=>$val) {
$newArr[] = array('id'=>$key,'category_id'=>$val);
}
कोशिश array_multisort
यह भीतरी सरणियों की पहली कुंजी/संपत्ति
function sort_by_field($field, & $data) {
$sort_func = create_function('$a,$b', 'if ($a["' . $field . '"] == $b["' . $field . '"]) {return 0;}
return ($a["' . $field . '"] < $b["' . $field . '"]) ? -1 : 1;');
uasort($data, $sort_func);
}
उपयोग usort साथ द्वारा बाहरी सरणी सॉर्ट होगा: मैं द्वारा नेस्टेड सरणी कुंजी [id] इस सरणी सॉर्ट करने के लिए की जरूरत है एक कस्टम तुलना समारोह।
<?php
function cmp($a, $b) {
if ($a['id'] == $b['id'])
return 0;
return $a['id'] < $b['id'] ? -1 : 1;
}
$array = Array (
0 => Array ('id' => 5, 'category_id' => 12),
1 => Array ('id' => 4, 'category_id' => 12),
2 => Array ('id' => 7, 'category_id' => 12),
3 => Array ('id' => 3, 'category_id' => 12),
);
usort($array, 'cmp');
// Output: 3 4 5 7
foreach ($array as $element)
echo $element['id'], " ";
क्यों न केवल इस तरह अपना डेटा स्टोर करें?
Array (
[5] => int(12)
[3] => int(12)
[9] => int(12)
[4] => int(12)
)
फिर आप सामान्य रूप से ksort() का उपयोग कर सकते हैं।
इस प्रकार मैं एरे करता हूं जहां मुझे दो नंबरों को एक साथ मैप करने की आवश्यकता होती है। यह स्पष्ट नहीं हो सकता है, लेकिन यह इसके साथ काम करना बहुत आसान है। – tj111
शायद आप array_multisort का उपयोग करना चाहते हैं प्रलेखन में उदाहरण # 3 देखें।
की डुप्लीकेट http://stackoverflow.com/प्रश्न/3376607/हेल्प-सॉर्टिंग-यह-सरणी/3376735 # 3376735 – stillstanding