johnsmith153 Posted December 11, 2008 Share Posted December 11, 2008 I have: $array=array(); $array[jim]="100"; $array[dave]="100"; $array[rob]="300"; I want to sort by the array value, then if there is a match, the array key So this would be returned: dave, 100 jim,100 rob, 300 I can sort by one or the other, but not both. I have tried: ksort($array); array_multisort($array,SORT_NUMERIC); but, it doesn't work Quote Link to comment https://forums.phpfreaks.com/topic/136575-easy-array-sorting/ Share on other sites More sharing options...
.josh Posted December 11, 2008 Share Posted December 11, 2008 where are you getting the array keys from? Do they have to be the array keys? Could the names be array an element instead? Quote Link to comment https://forums.phpfreaks.com/topic/136575-easy-array-sorting/#findComment-713007 Share on other sites More sharing options...
johnsmith153 Posted December 11, 2008 Author Share Posted December 11, 2008 Must be like this. Thanks. Quote Link to comment https://forums.phpfreaks.com/topic/136575-easy-array-sorting/#findComment-713014 Share on other sites More sharing options...
.josh Posted December 11, 2008 Share Posted December 11, 2008 Hmm...tbh I think you should rethink your script structure in the first place, but whatever. My take: asort($array); foreach($array as $name => $num) { $count[$num]++; } foreach ($count as $c) { $t = array_splice($array,0,$c); ksort($t); $array = array_merge($array, $t); } Quote Link to comment https://forums.phpfreaks.com/topic/136575-easy-array-sorting/#findComment-713056 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.