Hàm in_array() trong PHP
Trần Thị Vân
- 1606
- 04/08/2025
Chức năng của Hàm in_array() trong PHP
Hàm in_array() trong PHP dùng để kiểm tra các phần tử trong mảng có phần tử nào chứa giá trị truyền vào hay không, nếu có trả về 1, không có trả về rỗng.
Cú pháp của Hàm in_array() trong PHP
$kết_quả = in_array("giá_trị",$biến_mảng_gốc);
$biến_mảng_gốc: Biến của mảng gốc.
giá_trị: Giá trị truyền vào để kiểm tra các phần tử trong mảng xem có phần tử nào có giá trị này hay không.
$kết_quả: Kết quả trả về, nếu có trả về 1, không có trả về rỗng.
Ví dụ Hàm in_array() trong PHP
<h2>Kiểm tra các phần tử trong mảng bình thường, có phần tử nào chứa giá trị truyền vào hay không</h2>
<?php
$manggoc = array("Lực","Vân","Quỳnh","Hạ","Dung");
echo in_array("Lực",$manggoc); // Kết quả: 1
echo "<br>";
echo in_array("Hà",$manggoc); // Kết quả:
?>
<h2>Kiểm tra các phần tử trong mảng liên kết, có phần tử nào chứa giá trị truyền vào hay không</h2>
<?php
$manglkgoc = array(35=>"Lực",29=>"Vân",2=>"Quỳnh",1=>"Hạ",30=>"Dung");
echo in_array("Lực",$manglkgoc); // Kết quả: 1
echo "<br>";
echo in_array("Vân",$manglkgoc); // Kết quả: 1
echo "<br>";
echo in_array("Hà",$manglkgoc); // Kết quả:
?>
Kết quả:
/////Kiểm tra các phần tử trong mảng bình thường, có phần tử nào chứa giá trị truyền vào hay không
1
/////Kiểm tra các phần tử trong mảng liên kết, có phần tử nào chứa giá trị truyền vào hay không
1
1
Kinh nghiệm sử dụng hàm in_array() trong PHP
Khi làm việc với mảng trong PHP, in_array() phù hợp cho những trường hợp cần xác định một giá trị có đang tồn tại trong danh sách hay không. Để kết quả kiểm tra chính xác hơn, cần chú ý đến mục đích sử dụng và kiểu dữ liệu của giá trị cần tìm.
Khi nào nên sử dụng hàm in_array()?
Nên sử dụng in_array() khi chỉ cần biết một giá trị có xuất hiện trong mảng hay không mà không cần lấy vị trí của phần tử. Đây là cách viết ngắn gọn, dễ đọc và phù hợp với các thao tác kiểm tra điều kiện trong chương trình.
Ví dụ, có thể dùng hàm để kiểm tra một quyền truy cập, trạng thái, danh mục hoặc giá trị được phép trước khi thực hiện một xử lý tiếp theo.
<?php
$roles = ['admin', 'editor', 'author'];
if (in_array('editor', $roles, true)) {
echo 'Người dùng có quyền chỉnh sửa.';
}
?>
Trong trường hợp cần biết vị trí của giá trị trong mảng, in_array() không phải lựa chọn phù hợp. Khi đó nên cân nhắc array_search() để nhận về khóa tương ứng.
Kiểm tra kiểu dữ liệu khi tìm kiếm trong mảng
Một điểm dễ gây nhầm lẫn là PHP có thể so sánh giá trị theo cách không nghiêm ngặt nếu không yêu cầu kiểm tra kiểu dữ liệu. Vì vậy, khi dữ liệu có thể chứa cả số và chuỗi biểu diễn số, nên sử dụng tham số thứ ba với giá trị true.
<?php
$ids = [10, 20, 30];
var_dump(in_array('20', $ids));
var_dump(in_array('20', $ids, true));
?>
Cách kiểm tra nghiêm ngặt giúp phân biệt 20 và '20', từ đó hạn chế kết quả ngoài dự kiến khi xử lý dữ liệu từ biểu mẫu, API hoặc cơ sở dữ liệu.
Phân biệt in_array() với array_search() trong PHP
in_array() tập trung vào câu hỏi giá trị có tồn tại trong mảng hay không và trả về kết quả true hoặc false. Trong khi đó, array_search() tìm giá trị và trả về khóa của phần tử tìm thấy.
<?php
$products = ['phone', 'laptop', 'tablet'];
if (in_array('laptop', $products, true)) {
echo 'Sản phẩm tồn tại.';
}
$index = array_search('laptop', $products, true);
if ($index !== false) {
echo 'Vị trí: ' . $index;
}
?>
Vì vậy, nếu chỉ cần kiểm tra sự tồn tại, in_array() thường dễ hiểu hơn. Nếu cần tiếp tục xử lý phần tử dựa trên khóa tìm được, array_search() sẽ phù hợp hơn.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm in_array() 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 *