SnarkytoSnarkers Posted February 3, 2010 Share Posted February 3, 2010 Hopefully, I can explain this correctly... I have a multidimensional array and am trying to group them according to the value of one the keys. So, I'm trying to group them by level, but I won't actually know the level beforehand. So, it's not like I can put it in a for loop and say while $i < 7, because I won't know that 7 is the maximum value for the level key, and, frankly, I'm not sure that's how I would need to do it even if I did... 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 ) ) What I'm hoping to produce: 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 ) ) ) Link to comment https://forums.phpfreaks.com/topic/190747-php-how-to-group-a-multidimensional-array-by-a-particular-value/ Share on other sites More sharing options...
akitchin Posted February 3, 2010 Share Posted February 3, 2010 for lack of a fancier way, you should be able to do this with a foreach() loop: $level_keys = array(); foreach ($master_array AS $k => $sub_array) { $this_level = $sub_array['level']; $level_keys[$this_level][$k] = array('cust' => $sub_array['cust'], 'type' => $sub_array['type']); } '<pre>'.print_r($level_keys, TRUE).'</pre>'; Link to comment https://forums.phpfreaks.com/topic/190747-php-how-to-group-a-multidimensional-array-by-a-particular-value/#findComment-1005913 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.