Home >Backend Development >PHP Problem >How to implement reverse order output of an array in PHP
In PHP, there are many functions that can be used to output the reverse order of arrays, such as array_reverse()
, rsort()
, arsort()
, etc. However, if you do not use these functions, how to achieve the reverse output of the array? Below we will introduce several implementation methods.
$arr = array(1, 2, 3, 4, 5); $len = count($arr); for ($i = $len - 1; $i >= 0; $i--) { echo $arr[$i] . " "; }
Through the for loop, start traversing from the last element of the array, then gradually reduce the index $i, and output each element. This method is simple and straightforward, but requires manual calculation of the array length.
$arr = array(1, 2, 3, 4, 5); while ($value = end($arr)) { echo $value . " "; prev($arr); // 向前移动指针 }
Get the last element of the array through the end()
function, and then output it one by one and pass prev()
Function moves the pointer to the previous element. When the pointer moves to the first element, the end()
function will return false and exit the loop.
$arr = array(1, 2, 3, 4, 5); $reverseArr = array(); foreach ($arr as $value) { array_unshift($reverseArr, $value); } foreach ($reverseArr as $value) { echo $value . " "; }
Traverse the array through the foreach loop and add the array elements to the beginning of the new array, that is, add them from back to front. Finally, the elements in the new array are output through the foreach loop, which is the reverse order of the original array.
$arr = array(1, 2, 3, 4, 5); $len = count($arr); $i = $len - 1; do { echo $arr[$i] . " "; $i--; } while ($i >= 0);
Use do-while loop, start traversing from the last element of the array, then gradually reduce the index $i, and output each element. Similar to a for loop, but does not require manual calculation of the array length. However, it should be noted that the do-while loop will be executed at least once, that is, if the array is empty, an error will occur.
$arr = array(1, 2, 3, 4, 5); $reverseArr = array(); while (count($arr) > 0) { $lastVal = array_splice($arr, -1); $reverseArr = array_merge($reverseArr, $lastVal); } foreach ($reverseArr as $value) { echo $value . " "; }
Use the array_splice()
function to delete the last element from the end of the array, and return the deleted element, and then merge it with the new array . Repeat this process until the original array is empty, and finally output a new array, which is the reverse order of the original array.
The above are several ways to implement array output in reverse order in PHP without using functions. Readers can choose different methods according to actual needs.
The above is the detailed content of How to implement reverse order output of an array in PHP. For more information, please follow other related articles on the PHP Chinese website!