1. Hàm array_reverse() trong PHP

Hàm array_reverse() trong PHP được sử dụng để đảo ngược thứ tự của các phần tử trong mảng. Hàm này cũng có thể đảo ngược thứ tự của các mảng đa chiều. Phần tử đầu tiên trở thành phần tử cuối cùng, phần tử thứ 2 thành phần tử kế cuối … phần tử cuối cùng thành phần tử đầu tiên. Ngoài ra khi sử dụng hàm array_reverse() ta cũng có thể bảo toàn các yếu tố chính theo sự lựa chọn của ta. Hàm này chấp nhận một mảng làm tham số và trả về mảng có các phần tử theo thứ tự đã được đảo ngược. Hàm này được giới thiệu và sử dụng từ phiên bản PHP 4.0

2. Cú pháp của hàm array_reverse() trong PHP

Ta có cú pháp của hàm array_reverse() trong PHP là :

array_reverse($array, $key_preserve)

Trong đó :

  • $array : Tham số này tham chiếu đến mảng ban đầu. Tham số này là bắt buộc
  • $key_preserve : Đây là một tham số tùy chọn và có thể được đặt thành True hoặc False , mặc định là False . Các cặp key => value vẫn sẽ được giữ nguyên mà chỉ đạo thứ tự. Ngược lại, nếu $key_preserve mang giá trị True thì các key sẽ bị thay thế.

Giá trị trả về sẽ là mảng được truyền vào hàm và đã được đảo ngược thứ tự.

Chú ý

Khi sửa đổi tham số $key_preserve thành True trong hàm thì nó chỉ được áp dụng với key dạng số. Còn với những key dạng chuỗi thì nó vẫn sẽ giữ nguyên và không bị sửa đổi dù tham số $key_preserve là True hay False

Ví dụ : đảo ngược một mảng và trả về mảng theo thứ tự ngược lại

<?php
$a=array("a"=>"PHP","b"=>"Python","c"=>"Java");
echo '<pre>'; 
print_r($a);
echo '<pre>';
print_r(array_reverse($a));
?>

Kết quả

Array
(
    [a] => PHP
    [b] => Python
    [c] => Java
)

Array
(
    [c] => Java
    [b] => Python
    [a] => PHP
)

Trong ví dụ này ta chỉ truyền mảng vào hàm array_reverse() mà không truyền thêm tham số $key_preserve . Vì vậy giá trị này mặc định là False và các cặp key => value vẫn sẽ được giữ nguyên mà chỉ đạo thứ tự.

3. Ví dụ về hàm array_reverse() trong PHP

Ví dụ 1: Sử dụng thêm tham số thứ hai và trả về mảng đã đảo ngược và mảng được bảo toàn

<?php  
  $num= array(100,200,300,400,500);  
  $x = array_reverse($num,true);  
  $y = array_reverse($num);  
  echo '<pre>';
  print_r($x); //in ra mảng ban đầu
  echo '<pre>';
  print_r($y);  //in ra mảng đảo ngược
?>

Kết quả

Array
(
    [4] => 500
    [3] => 400
    [2] => 300
    [1] => 200
    [0] => 100
)
Array
(
    [0] => 500
    [1] => 400
    [2] => 300
    [3] => 200
    [4] => 100
)

Như ta đã thấy nếu như ta thêm tham số thứ hai là True thì các cặp key => value sẽ được giữ nguyên. Chỉ có điều nó sẽ đảo ngược lại thứ tự của nó trong mảng mà thôi. Còn nếu không sử dụng thì key của chúng được đặt lại theo thứ tự và bắt đầu từ 0. Tuy nhiên nó chỉ áp dụng được với những key dạng số. Với những key dạng chuỗi thì key của nó vẫn được giữ nguyên dù có thêm tham số True vào hàm nhé

<?php 
$a=array("a"=>"PHP","b"=>"Python","c"=>"Java");
$x = array_reverse($a,true);

echo '<pre>';
print_r($a); //in ra mảng ban đầu

echo '<pre>'; 
print_r(array_reverse($a)); //đảo ngược mảng với $key_preserve là False

echo '<pre>'; 
print_r($x); //đảo ngược mảng với $key_preserve là True

?>

Kết quả

Array
(
    [a] => PHP
    [b] => Python
    [c] => Java
)
Array
(
    [c] => Java
    [b] => Python
    [a] => PHP
)
Array
(
    [c] => Java
    [b] => Python
    [a] => PHP
)

Ví dụ 2: sử dụng với mảng đa chiều

<?php
$a=array("PHP","Java",array("Python","HTML"));
$reverse=array_reverse($a);
$preserve=array_reverse($a,true);

echo '<pre>';
print_r($a); //in ra mảng ban đầu

echo '<pre>';
print_r($reverse); //đảo ngược mảng với $key_preserve là False

echo '<pre>';
print_r($preserve); //đảo ngược mảng với $key_preserve là True
?>

Kết quả

Array
(
    [0] => PHP
    [1] => Java
    [2] => Array
        (
            [0] => Python
            [1] => HTML
        )

)
Array
(
    [0] => Array
        (
            [0] => Python
            [1] => HTML
        )

    [1] => Java
    [2] => PHP
)
Array
(
    [2] => Array
        (
            [0] => Python
            [1] => HTML
        )

    [1] => Java
    [0] => PHP
)