Hàm array_key_exists() trong PHP

Hàm array_key_exists() trong PHP
Hàm array_key_exists() trong PHP

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

Hàm array_key_exists() trong PHP dùng để kiểm tra một khóa (key) có tồn tại trong một mảng hay không, nếu khóa (key) tồn tại sẽ trả về 1, nếu không tồn tại sẽ trả về rỗng.

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

$kết_quả = array_key_exists("khóa_key_cần_kiểm_tra",$biến_mảng_gốc);

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

khóa_key_cần_kiểm_tra: Khóa (Key) cần kiểm tra xem có tồn tại trong mảng hay không.

$kết_quả: Kết quả trả về, nếu Khóa (Key) tồn tại trong mảng thì trả về 1, nếu Khóa (Key) không tồn tại trong mảng thì trả về rỗng.

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

<h2>Kiểm tra Khóa (Key) có tồn tại trong mảng bình thường hay không</h2>
<?php
$manggoc = array("Lực","Vân","Quỳnh","Vân","Dung");
print_r($manggoc);
echo "<br>";

// Kiểm tra Khóa (key) 2 có tồn tại hay không
echo array_key_exists("2",$manggoc); // Kết quả: 1

// Kiểm tra Khóa (key) 5 có tồn tại hay không
echo array_key_exists("5",$manggoc); // Kết quả: 
?>

<h2>Kiểm tra Khóa (Key) có tồn tại trong mảng liên kết hay không</h2>
<?php
$manglkgoc = array("Lực"=>"35", "Quỳnh"=>"1", "Vân"=>"29");
print_r($manglkgoc);
echo "<br>";

// Kiểm tra Khóa (key) Lực có tồn tại hay không
echo array_key_exists("Lực",$manglkgoc); // Kết quả: 1

// Kiểm tra Khóa (key) Nhím có tồn tại hay không
echo array_key_exists("Nhím",$manglkgoc); // Kết quả: 
?>

Kết quả:

/////Kiểm tra Khóa (Key) có tồn tại trong mảng bình thường hay không
Array ( [0] => Lực [1] => Vân [2] => Quỳnh [3] => Vân [4] => Dung )
1

/////Kiểm tra Khóa (Key) có tồn tại trong mảng liên kết hay không
Array ( [Lực] => 35 [Quỳnh] => 1 [Vân] => 29 )
1

Chạy Thử

Những cách kiểm tra khóa mảng trong PHP cần biết

Khi làm việc với mảng PHP, kiểm tra một khóa có tồn tại hay không là thao tác thường gặp khi xử lý dữ liệu từ biểu mẫu, API hoặc cơ sở dữ liệu. Tuy nhiên, mỗi cách kiểm tra lại có mục đích khác nhau. Chọn đúng phương pháp giúp mã nguồn rõ ràng và tránh bỏ sót những trường hợp đặc biệt.

Phân biệt array_key_exists() và isset() trong PHP

array_key_exists() kiểm tra sự tồn tại của khóa, còn isset() kiểm tra cả khóa và giá trị có khác null hay không. Vì vậy, hai hàm này có thể cho kết quả khác nhau khi khóa tồn tại nhưng giá trị được gán là null.

<?php
$data = [
    'name' => 'Web Mới',
    'description' => null
];

var_dump(array_key_exists('description', $data));
var_dump(isset($data['description']));
?>

Trong ví dụ trên, array_key_exists() trả về true vì khóa description thực sự tồn tại trong mảng. Ngược lại, isset() trả về false vì giá trị của khóa này là null.

Do đó, nếu mục tiêu là xác định khóa có tồn tại trong mảng hay không, nên ưu tiên array_key_exists(). Nếu cần kiểm tra một giá trị có được thiết lập và khác null, isset() thường phù hợp hơn.

Khi nào nên dùng array_key_exists() thay vì in_array()

array_key_exists()in_array() phục vụ hai nhu cầu khác nhau. Một hàm tìm khóa, trong khi hàm còn lại tìm giá trị trong mảng.

<?php
$data = [
    'name' => 'Web Mới',
    'type' => 'website'
];

var_dump(array_key_exists('name', $data));
var_dump(in_array('Web Mới', $data, true));
?>

Ở đây, array_key_exists() phù hợp khi cần xác định khóa name có tồn tại. Trong khi đó, in_array() được sử dụng khi cần tìm giá trị Web Mới bên trong các phần tử của mảng.

Không nên dùng in_array() để thay thế cho việc kiểm tra khóa. Nếu dữ liệu có nhiều khóa hoặc các giá trị có thể thay đổi, sử dụng đúng hàm theo mục đích sẽ giúp logic xử lý dễ đọc và ít gây nhầm lẫn hơn.

Kiểm tra khóa tồn tại khi giá trị trong mảng là null

Trường hợp giá trị null là điểm cần đặc biệt lưu ý khi xử lý dữ liệu không bắt buộc. Một khóa có thể đã được tạo trong mảng nhưng chưa có giá trị cụ thể.

<?php
$user = [
    'username' => 'admin',
    'email' => null
];

if (array_key_exists('email', $user)) {
    echo 'Khóa email đang tồn tại';
}
?>

Trong tình huống này, array_key_exists() vẫn xác nhận khóa email tồn tại dù giá trị là null. Điều này hữu ích khi chương trình cần phân biệt giữa hai trạng thái: khóa chưa xuất hiệnkhóa đã tồn tại nhưng chưa có giá trị.

Đây cũng là lý do không nên thay thế máy móc array_key_exists() bằng isset(). Với những cấu trúc dữ liệu mà null mang ý nghĩa riêng, việc lựa chọn đúng hàm kiểm tra sẽ giúp chương trình xử lý dữ liệu chính xác hơn.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm array_key_exists() 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ệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm array_key_exists() 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
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !