Hàm array_search() trong PHP

Hàm array_search() trong PHP
Hàm array_search() trong PHP

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

Hàm array_search() trong PHP dùng để lấy khóa (key) của phần tử đầu tiên trong mảng có giá trị giống với giá trị đang tìm.

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

array_search("giá_trị_cần_tìm",$mảng_gốc);

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

giá_trị_cần_tìm: Giá trị của khóa (key) cần tìm.

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

<?php
$mangchu = array("Vân","Lực","Quỳnh");
echo array_search("Quỳnh",$mangchu); // Kết quả 2
echo "<br>";

$mangso = array(29,2,35,29);
echo array_search("29",$mangso); // Kết quả 0
?>

Kết quả:

2
0

Những lưu ý khi sử dụng array_search() trong PHP

array_search() khá đơn giản khi dùng để tìm một giá trị trong mảng, nhưng kết quả trả về có thể gây nhầm lẫn nếu kiểm tra không đúng cách. Đặc biệt, trường hợp phần tử nằm ở vị trí đầu tiên hoặc dữ liệu có kiểu khác nhau là những điểm cần chú ý.

Phân biệt giá trị trả về của array_search() và vị trí phần tử

Khi tìm thấy giá trị, array_search() trả về key của phần tử đó chứ không phải bản thân giá trị. Nếu không tìm thấy, hàm trả về false.

Điểm dễ xảy ra lỗi là key của phần tử có thể bằng 0. Trong PHP, 0 được xem là giá trị false khi kiểm tra bằng toán tử so sánh lỏng. Vì vậy, không nên kiểm tra kết quả tìm kiếm theo cách sau:

<?php
$products = ['Laptop', 'Điện thoại', 'Máy tính bảng'];

$result = array_search('Laptop', $products);

if (!$result) {
    echo 'Không tìm thấy sản phẩm';
}
?>

Trong ví dụ trên, Laptop tồn tại nhưng có key bằng 0, khiến điều kiện !$result vẫn được xem là đúng. Cách an toàn hơn là kiểm tra rõ kết quả có phải false hay không:

<?php
$products = ['Laptop', 'Điện thoại', 'Máy tính bảng'];

$result = array_search('Laptop', $products);

if ($result === false) {
    echo 'Không tìm thấy sản phẩm';
} else {
    echo 'Tìm thấy tại key: ' . $result;
}
?>

Khi nào nên sử dụng tham số strict trong array_search()?

Tham số strict giúp PHP kiểm tra đồng thời cả giá trị và kiểu dữ liệu. Khi đặt tham số này thành true, một số có kiểu integer sẽ không được xem là giống chuỗi có cùng nội dung.

<?php
$data = [10, 20, 30];

$result = array_search('10', $data, true);

if ($result === false) {
    echo 'Không tìm thấy';
}
?>

Trong trường hợp này, chuỗi "10" không được xem là giống số nguyên 10. Đây là lựa chọn phù hợp khi dữ liệu đến từ biểu mẫu, API hoặc nguồn bên ngoài và cần kiểm soát chặt chẽ kiểu dữ liệu.

Xử lý trường hợp array_search() không tìm thấy phần tử

Khi không có giá trị phù hợp, array_search() trả về false. Do đó, ứng dụng nên xử lý trường hợp này trước khi sử dụng key nhận được từ hàm.

<?php
$users = [
    'admin' => 'Nguyễn Văn A',
    'editor' => 'Trần Văn B'
];

$key = array_search('Lê Văn C', $users, true);

if ($key === false) {
    echo 'Người dùng không tồn tại';
} else {
    echo 'Key người dùng: ' . $key;
}
?>

Cách kiểm tra bằng === false giúp phân biệt chính xác giữa trường hợp không tìm thấy và trường hợp hàm trả về một key có giá trị 0. Đây là thói quen nên áp dụng khi kết quả tìm kiếm được dùng cho các bước xử lý tiếp theo.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm array_search() 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_search() 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) !