1. Hàm array_values() trong PHP

Hàm array_values() trong PHP được dùng để lấy ra tất cả các value trong mảng. Khi ta truyền một mảng vào hàm array_values() thì hàm này sẽ lấy ra tất cả value của mảng này, sau đó trả về một mảng chứa tất cả các value này. Với key của mảng được trả về sẽ được đánh số theo thứ tự tăng dần (tăng 1) bắt đầu từ 0 . Thứ tự của các value trong mảng được trả về sẽ giống như thứ tự của các value này trong mảng ban đầu. Hay ta có thể hiểu là hàm array_values() sẽ trả về một mảng liên tục bao gồm các value của mảng được truyền vào. Nói cách khác hàm sẽ chuyển từ mảng kết hợp thành mảng liên tục. Hàm array_values() đượ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_values() trong PHP

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

array array_values($array)

Trong đó $array chính là mảng đầu vào mà ta truyền vào hàm. Hàm sẽ chỉ nhận một tham số bắt buộc là $array là mảng được truyền vào. Tất cả value của mảng $array sẽ được hàm array_values() lấy ra và trả về. Như mình đã nói ở trên thì giá trị trả về sẽ là mảng liên tục gồm value của mảng $array . Dù là key dạng số hay key dạng chuỗi thì hàm array_values() sẽ đều thay đổi và đánh số lại hết nhé.

Ví dụ : trả về tất cả các giá trị của một mảng

<?php
$a=array("a"=>"PHP","b"=>"Java","c"=>"Python","d"=>"HTML");

echo '<pre>';
print_r(array_values($a));
?>

Kết quả

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

Với mảng đầu vào $a có chứa những key dạng chuỗi hay còn gọi là mảng kết hợp. Sau khi truyền vào hàm array_values() thì những value được lấy ra và trả về. Hay mảng kết hợp này đã được chuyển thành mảng liên tục.

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

Ví dụ 1:

<?php

function Return_Values($array)
{
    return (array_values($array));
}
$array = array("PHP"=>25, "Java"=>10, "Python"=>20, "HTML");

echo '<pre>';
print_r(Return_Values($array));

?>

Kết quả

Array
(
    [0] => 25
    [1] => 10
    [2] => 20
    [3] => HTML
)

Ví dụ 2:

<?php  

$a=array(1=>"lap",2=>"trinh",3=>"tu",4=>"dau"); 

echo '<pre>';
print_r(array_values($a));  

?>

Kết quả

Array
(
    [0] => lap
    [1] => trinh
    [2] => tu
    [3] => dau
)

Lưu ý 

Việc dùng hàm array_values() có thể làm ta đạt đến giới hạn bộ nhớ một cách không mong muốn. Ví dụ như momory_limits PHP của ta là 6MB (giới bạn bộ nhớ vậy lý RAM mà một tập lệnh PHP có thể được sử dụng) . Ta có một mảng lớn là $bigArray phân bổ tới 4MB bộ nhớ. Khi ta thực hiện câu lệnh $bigArray = array_values( $bigArray ); Việc này sẽ làm ta bị vượt quá giới hạn lưu trữ. Vì array_values() không lập chỉ mục lại $bigArray một cách trực tiếp mà nó chỉ lập chỉ mục lại nó thành một mảng khác và gán cho chính nó sau đó.