Menu
CoddyTech

Tìm khóa bằng 'array_search'

Thuộc phần Logic và luồng chương trình trong hành trình PHP của Coddy. Bài học 18 trên 68.

in_array() cho bạn biết một giá trị có tồn tại trong mảng hay không, nhưng đôi khi bạn cần biết chính xác giá trị đó nằm ở đâu. Hàm array_search() tìm một giá trị cụ thể trong mảng và trả về khóa hoặc chỉ số tương ứng.

Cách hoạt động như sau:

<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position;  // Đầu ra: 2
?>

Hàm (function) nhận hai tham số: giá trị bạn đang tìm và mảng cần tìm kiếm. Khi tìm thấy giá trị, array_search() trả về khóa (với mảng được đánh chỉ số, đây là vị trí dạng số bắt đầu từ 0).

Tuy nhiên, có một điểm khác biệt quan trọng về giá trị được trả về. Nếu tìm thấy giá trị, bạn sẽ nhận được khóa. Nếu không tìm thấy giá trị, hàm trả về false:

<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores);    // Trả về: 2
$notFound = array_search(100, $scores); // Trả về: false
?>

Hàm này đặc biệt hữu ích khi bạn cần xác định vị trí hoặc thứ hạng của một mục, chẳng hạn như tìm thứ hạng của người chơi trên bảng xếp hạng hoặc xác định chỉ số của một phần tử cụ thể để xử lý thêm.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận hai đầu vào: một mảng tên sản phẩm ở định dạng JSON và tên sản phẩm cần tìm. Đọc cả hai đầu vào, chuyển chuỗi JSON thành mảng, dùng array_search() để tìm vị trí sản phẩm trong mảng rồi in kết quả. Nếu tìm thấy sản phẩm, hãy in chỉ số của sản phẩm đó. Nếu không tìm thấy sản phẩm, hãy in "Product not found".

Định dạng đầu vào: Hai dòng: dòng đầu tiên chứa một mảng JSON (ví dụ: ["laptop","mouse","keyboard","monitor"]), dòng thứ hai chứa tên sản phẩm cần tìm

Đầu ra mong đợi: Chỉ số của sản phẩm (bắt đầu từ 0) hoặc văn bản "Product not found" nếu sản phẩm không có trong mảng

Tự làm thử

<?php
// Đọc mảng JSON đầu vào
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);

// Đọc tên sản phẩm cần tìm
$searchProduct = trim(fgets(STDIN));

// TODO: Viết code bên dưới
// Dùng array_search() để tìm vị trí của sản phẩm


// In ra kết quả
echo $result;
?>
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch PHP online