Hàm array_keys() trong PHP
Trần Thị Vân
- 1207
- 03/08/2025
Chức năng của Hàm array_keys() trong PHP
Hàm array_keys() trong PHP dùng để lấy toàn bộ Khóa (Key) hoặc lấy những khóa (key) có cùng giá trị truyền vào để dùng làm cột giá trị cho mảng mới, hàm array_keys() cho phép bạn truyền vào 1 giá trị, những phần tử nào có giá trị đó thì sẽ lấy khóa (key) cho vào mảng mới làm cột giá trị.
Cú pháp của Hàm array_keys() trong PHP
Lấy tất cả Khóa (Key)
$mảng_mới = array_keys($biến_mảng_gốc);
$biến_mảng_gốc: Biến của mảng gốc
$mảng_mới: Trả kết quả về mảng mới.
Lấy những Khóa (Key) có cùng giá trị truyền vào
$mảng_mới = array_keys($biến_mảng_gốc,"giá_trị");
giá_trị: Lấy những Khóa (Key) có giá trị giống với giá_trị truyền vào hàm array_keys().
$biến_mảng_gốc: Biến của mảng gốc
$mảng_mới: Trả kết quả về mảng mới.
Ví dụ Hàm array_keys() trong PHP
<h2>Lấy Khóa (Key) từ mảng liên kết</h2>
<?php
$manglkgoc = array("Lực"=>"35", "Quỳnh"=>"1", "Vân"=>"29", "Dung"=>"35");
// Lấy toàn bộ Khóa (Key) của mảng gốc đưa vô làm cột giá trị cho mảng mới
$mangmoi = array_keys($manglkgoc);
print_r($mangmoi); // Kết quả: Array ( [0] => Lực [1] => Quỳnh [2] => Vân [3] => Dung )
echo "<br>";
// Lấy Những Khóa (Key) có giá trị bằng 35 của mảng gốc đưa vô làm cột giá trị cho mảng mới
$mangmoi2 = array_keys($manglkgoc,"35");
print_r($mangmoi2); // Kết quả: Array ( [0] => Lực [1] => Dung )
?>
<h2>Lấy Khóa (Key) từ mảng bình thường</h2>
<?php
$manggoc = array("Lực","Quỳnh","Vân","Dung","Quỳnh");
// Lấy toàn bộ Khóa (Key) của mảng gốc đưa vô làm cột giá trị cho mảng mới
$mangmoi = array_keys($manggoc);
print_r($mangmoi); // Kết quả: Array ( [0] => Lực [1] => Quỳnh [2] => Vân [3] => Dung )
echo "<br>";
// Lấy Những Khóa (Key) có giá trị là "Quỳnh" của mảng gốc đưa vô làm cột giá trị cho mảng mới
$mangmoi2 = array_keys($manggoc,"Quỳnh");
print_r($mangmoi2); // Kết quả: Array ( [0] => Lực [1] => Dung )
?>
Kết quả:
/////Lấy Khóa (Key) từ mảng liên kết
Array ( [0] => Lực [1] => Quỳnh [2] => Vân [3] => Dung )
Array ( [0] => Lực [1] => Dung )
/////Lấy Khóa (Key) từ mảng bình thường
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 )
Array ( [0] => 1 [1] => 4 )
Kinh nghiệm sử dụng hàm array_keys() trong PHP
Khi làm việc với mảng PHP, array_keys() hữu ích trong những tình huống cần tách riêng danh sách khóa để kiểm tra, duyệt hoặc xử lý dữ liệu. Tuy nhiên, để sử dụng hiệu quả, nên xác định rõ mục đích lấy toàn bộ khóa hay chỉ tìm những khóa tương ứng với một giá trị cụ thể.
Lấy key theo điều kiện giá trị trong mảng
Ngoài việc lấy toàn bộ key, array_keys() còn cho phép truyền thêm một giá trị để tìm các khóa có giá trị tương ứng. Cách này phù hợp khi một giá trị có thể xuất hiện nhiều lần và cần xác định tất cả vị trí của nó trong mảng.
<?php
$products = [
'sp01' => 'Laptop',
'sp02' => 'Điện thoại',
'sp03' => 'Laptop',
'sp04' => 'Máy tính bảng'
];
$keys = array_keys($products, 'Laptop');
print_r($keys);
?>
Kết quả trả về là các khóa sp01 và sp03. Điểm đáng chú ý là hàm có thể trả về nhiều key nếu cùng một giá trị xuất hiện ở nhiều phần tử.
Phân biệt array_keys() với array_search()
array_keys() và array_search() đều có thể được dùng để tìm dữ liệu liên quan đến một giá trị, nhưng kết quả trả về khác nhau. array_search() tập trung vào việc tìm một key tương ứng với giá trị và thường dừng ở kết quả đầu tiên, trong khi array_keys() có thể lấy danh sách tất cả key phù hợp.
<?php
$data = [
'a' => 'PHP',
'b' => 'JavaScript',
'c' => 'PHP'
];
$key = array_search('PHP', $data);
$keys = array_keys($data, 'PHP');
print_r($key);
print_r($keys);
?>
Vì vậy, nếu chỉ cần biết một vị trí đầu tiên, array_search() thường phù hợp hơn. Ngược lại, khi cần thu thập toàn bộ key chứa cùng giá trị, array_keys() là lựa chọn trực tiếp và dễ đọc hơn.
Những lưu ý khi sử dụng array_keys()
- Kiểm tra kiểu dữ liệu: Khi tìm key theo giá trị, cần chú ý việc so sánh có thể phụ thuộc vào cách PHP xử lý kiểu dữ liệu.
- Không nhầm key với value: Kết quả của array_keys() là một mảng chứa các khóa, không phải các giá trị ban đầu.
- Mảng có thể có key dạng số hoặc chuỗi: Không nên mặc định mọi key đều là số nguyên khi xử lý kết quả.
- Giá trị không tồn tại: Nếu không tìm thấy giá trị phù hợp, hàm trả về một mảng rỗng, vì vậy có thể kiểm tra kết quả trước khi sử dụng tiếp.
- Chọn đúng hàm: Nếu mục tiêu là tìm vị trí của một giá trị duy nhất, nên cân nhắc array_search() thay vì lấy toàn bộ key.
Trong các đoạn xử lý dữ liệu lớn, việc xác định rõ cần một key hay nhiều key ngay từ đầu sẽ giúp code dễ đọc hơn và tránh các bước xử lý dư thừa.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm array_keys() trong PHP.
- 0 Bình luận
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 *