Hàm array_values() trong PHP

Hàm array_values() trong PHP
Hàm array_values() trong PHP

Chức năng của Hàm array_values() trong PHP

Hàm array_values() trong PHP dùng để lấy cột giá trị của một mảng sau đó đưa vô mảng mới, các khóa (key) khi đưa vào mảng mới sẽ được cập nhật lại, hàm này không làm thay đổi mảng gốc.

Cú pháp của Hàm array_values() trong PHP

$mảng_mới  = array_values($biến_mảng_gốc);

$biến_mảng_gốc: Biến mảng gốc.

$mảng_mới: Kết quả trả về mảng mới, cập nhật lại khóa (key) ở mảng mới và không làm thay đổi mảng gốc.

Ví dụ Hàm array_values() trong PHP

<h2>Hàm array_values() mảng liên kết khóa (key) bằng chuỗi</h2>
<?php 
$manggoc = array("a"=>"Đỏ","b"=>"Xanh","c"=>"Đỏ","d"=>"Vàng");
$mangmoi  = array_values($manggoc);
// Kết quả: Array ( [0] => Đỏ [1] => Xanh [2] => Đỏ [3] => Vàng )
print_r($mangmoi);
?>

<h2>Hàm array_values() mảng liên kết khóa (key) bằng số</h2>
<?php 
$manggoc = array(34=>"Đỏ",35=>"Xanh",36=>"Đỏ",37=>"Vàng");
$mangmoi  = array_values($manggoc);
// Kết quả: Array ( [0] => Đỏ [1] => Xanh [2] => Đỏ [3] => Vàng )
print_r($mangmoi);
?>

Kết quả:

/////Hàm array_values() mảng liên kết khóa (key) bằng chuỗi
Array ( [0] => Đỏ [1] => Xanh [2] => Đỏ [3] => Vàng )

/////Hàm array_values() mảng liên kết khóa (key) bằng số
Array ( [0] => Đỏ [1] => Xanh [2] => Đỏ [3] => Vàng )

Chạy Thử

Những lưu ý khi sử dụng hàm array_values() trong PHP

Khi làm việc với mảng PHP, array_values() thường được dùng để tạo lại danh sách giá trị theo thứ tự chỉ mục mới. Tuy nhiên, để sử dụng đúng, cần hiểu rõ hàm này tác động đến mảng như thế nào và trong trường hợp nào việc đánh lại chỉ mục thực sự cần thiết.

array_values() có làm thay đổi mảng ban đầu không?

array_values() không thay đổi trực tiếp mảng được truyền vào. Hàm tạo ra một mảng mới chứa các giá trị của mảng ban đầu, vì vậy nếu muốn sử dụng kết quả, bạn nên gán giá trị trả về cho một biến.

<?php
$products = [
    10 => 'Laptop',
    20 => 'Chuột',
    30 => 'Bàn phím'
];

$newProducts = array_values($products);

print_r($products);
print_r($newProducts);
?>

Trong ví dụ trên, $products vẫn giữ nguyên các khóa ban đầu, còn $newProducts có khóa được đánh lại từ 0. Điều này đặc biệt hữu ích khi cần tạo một danh sách mới mà không muốn ảnh hưởng đến dữ liệu gốc.

array_values() xử lý khóa số và khóa chuỗi như thế nào?

Hàm không giữ lại khóa cũ. Dù mảng ban đầu sử dụng khóa số rời rạc hay khóa chuỗi, kết quả đều được sắp xếp lại thành các chỉ mục số bắt đầu từ 0.

<?php
$data = [
    'first' => 'PHP',
    'third' => 'JavaScript',
    8 => 'CSS'
];

$result = array_values($data);

print_r($result);
?>

Kết quả sẽ có dạng:

Array
(
    [0] => PHP
    [1] => JavaScript
    [2] => CSS
)

Vì vậy, không nên sử dụng array_values() nếu khóa của mảng đang chứa thông tin cần thiết cho việc tra cứu hoặc liên kết dữ liệu.

Khi nào nên dùng array_values() để đánh lại chỉ mục mảng?

Nên cân nhắc sử dụng array_values() khi mảng sau khi lọc, loại bỏ hoặc xử lý dữ liệu vẫn còn các chỉ mục bị ngắt quãng và bạn cần biến nó thành một danh sách tuần tự.

<?php
$items = [
    0 => 'PHP',
    2 => 'MySQL',
    5 => 'JavaScript'
];

$items = array_values($items);

print_r($items);
?>

Cách làm này phù hợp khi dữ liệu được đưa sang giao diện, chuyển thành JSON hoặc xử lý như một danh sách tuần tự. Ngược lại, nếu khóa cũ dùng để xác định bản ghi, sản phẩm hoặc đối tượng cụ thể thì việc đánh lại chỉ mục có thể làm mất thông tin cần thiết.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm array_values() trong PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Chia sẻ nội dung đánh giá của bạn về Hàm array_values() trong PHP
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Đăng ký tư vấn thiết kế website
Tìm hiểu 1 năm không bằng lắng nghe 1 câu tư vấn