Home >Backend Development >PHP Problem >How to implement reverse order output of an array in PHP

How to implement reverse order output of an array in PHP

PHPz
PHPzOriginal
2023-04-19 10:05:452193browse

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.

1. Use for loop

$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.

2. Use while loop

$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.

3. Use foreach 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.

4. Use do-while loop

$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.

5. Use the array_splice() function

$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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn