Book HomePHP CookbookSearch this book

4.16. Reversing an Array

4.16.1. Problem

You want to reverse the order of the elements in an array.

4.16.2. Solution

Use array_reverse( ):

$array = array('Zero', 'One', 'Two');
$reversed = array_reverse($array);

4.16.3. Discussion

The array_reverse( ) function reverses the elements in an array. However, it's often possible to avoid this operation. If you wish to reverse an array you've just sorted, modify the sort to do the inverse. If you want to reverse a list you're about to loop through and process, just invert the loop. Instead of:

for ($i = 0, $size = count($array); $i < $size; $i++) {
    ...
}

do the following:

for ($i = count($array) - 1; $i >=0 ; $i--) { 
    ...
}

However, as always, use a for loop only on a tightly packed array.

Another alternative would be, if possible, to invert the order elements are placed into the array. For instance, if you're populating an array from a series of rows returned from a database, you should be able to modify the query to ORDER DESC. See your database manual for the exact syntax for your database.

4.16.4. See Also

Documentation on array_reverse( ) at http://www.php.net/array-reverse.



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.