|
arsort
Sort an array in reverse order and maintain index association
(PHP 4, PHP 5)
Example 296. arsort() example<?php The above example will output: a = orange Related Examples ( Source code ) » arsort Examples ( Source code ) » arsort Sort an array in reverse order and maintain index association Code Examples / Notes » arsortscott woods
Note about "morgan at anomalyinc dot com"'s comment: As of PHP4, you can just use array_multisort() to sort parallel or multi-dimensional arrays. morgan
If you need to sort a multi-demension array, for example, an array such as $TeamInfo[$TeamID]["WinRecord"] $TeamInfo[$TeamID]["LossRecord"] $TeamInfo[$TeamID]["TieRecord"] $TeamInfo[$TeamID]["GoalDiff"] $TeamInfo[$TeamID]["TeamPoints"] and you have say, 100 teams here, and want to sort by "TeamPoints": first, create your multi-dimensional array. Now, create another, single dimension array populated with the scores from the first array, and with indexes of corresponding team_id... ie $foo[25] = 14 $foo[47] = 42 or whatever. Now, asort or arsort the second array. Since the array is now sorted by score or wins/losses or whatever you put in it, the indices are all hoopajooped. If you just walk through the array, grabbing the index of each entry, (look at the asort example. that for loop does just that) then the index you get will point right back to one of the values of the multi-dimensional array. Not sure if that's clear, but mail me if it isn't... -mo rodders_plonker
I was having trouble with the arsort() function on an older version of PHP which was returning an error along the lines of 'wrong perameter count for function arsort' when I tried to use a flag for numeric sorting (2/SORT_NUMERIC). I figured, as I only wanted to sort integers, I could pad numbers from the left to a specific length with 0's (using the lpad function provided by improv@magma.ca in the notes at http://www.php.net/manual/ref.strings.php). A string sort then correctly sorts numerically (i.e. {30,2,10,21} becomes {030,021,010,002} not {30,21,2,10}) when echoing the number an (int)$string_name hides the leading 0's. Made my day :). Rodders. |
Change Languagearray_change_key_case array_chunk array_combine array_count_values array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_diff array_fill_keys array_fill array_filter array_flip array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey array_intersect array_key_exists array_keys array_map array_merge_recursive array_merge array_multisort array_pad array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift array_slice array_splice array_sum array_udiff_assoc array_udiff_uassoc array_udiff array_uintersect_assoc array_uintersect_uassoc array_uintersect array_unique array_unshift array_values array_walk_recursive array_walk array arsort asort compact count current each end extract in_array key krsort ksort list natcasesort natsort next pos prev range reset rsort shuffle sizeof sort uasort uksort usort |