Tìm giá trị trong một mảng PHP như thế nào ?

Khi làm việc với một mảng trong PHP, chúng ta thường cần tìm kiếm một giá trị cụ thể. Để giảm khối lượng công việc, các nhà phát triển PHP đã giới thiệu một vài hàm tích hợp sẵn để giúp người dùng tìm kiếm và định vị một giá trị cụ thể trong mảng đã cho.

Lập Trình Viên mời bạn cùng tham khảo chi tiết nội dung bên dưới. Bài viết này nằm trong chuyên đề hướng dẫn PHP từ cơ bản đến nâng cao tại dự án Phát Triển Website.

Tìm giá trị trong một mảng PHP Là gì?

Hàm array_search() trong PHP là một hàm tích hợp sẵn được sử dụng rộng rãi để tìm kiếm và định vị một giá trị cụ thể trong mảng đã cho. Nếu nó tìm thấy giá trị cụ thể, nó sẽ trả về giá trị khóa tương ứng của nó. Nếu phần tử được tìm thấy hai lần hoặc nhiều hơn, thì chỉ khóa khớp đầu tiên của giá trị phù hợp sẽ được trả về.

Dưới đây là hai hàm PHP được sử dụng để tìm kiếm các giá trị trong một mảng:

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

Trong bài viết này, chúng ta sẽ tìm hiểu về cú pháp, giá trị trả về, các tham số và các ví dụ khác nhau của cả hai hàm.

Hàm array_search() trong PHP

Hàm array_search() trong PHP là một hàm tích hợp sẵn được sử dụng rộng rãi để tìm kiếm và định vị một giá trị cụ thể trong mảng đã cho. Nếu nó tìm thấy giá trị cụ thể, nó sẽ trả về giá trị khóa tương ứng của nó. Nếu phần tử được tìm thấy hai lần hoặc nhiều hơn, thì chỉ khóa khớp đầu tiên của giá trị phù hợp sẽ được trả về.

Cú pháp

array_search($value, $array, $strict_parameter);

Các tham số của hàm này như sau:

  • $value (bắt buộc): Tham số này đại diện cho giá trị mà người dùng muốn tìm kiếm trong mảng đã cho.
  • $array (bắt buộc): Tham số này đại diện cho mảng ban đầu, trong đó người dùng muốn tìm kiếm phần tử.
  • $strict_parameter (tùy chọn): Đây là một tham số tùy chọn có thể được đặt thành TRUE hoặc FALSE. Nó đại diện cho tính nghiêm ngặt của việc tìm kiếm trong mảng. Mặc định, tham số này được thiết lập thành Boolean FALSE. Nếu tham số $strict_parameter được đặt thành TRUE, thì hàm sẽ tìm kiếm các giá trị tương tự trong mảng, tức là một chuỗi 200 sẽ không được coi là giống với số nguyên 200. Vì vậy, cả hai giá trị là khác nhau. Nếu tham số $strict_parameter được đặt thành Boolean FALSE, tính nghiêm ngặt không được duy trì và một chuỗi 200 sẽ được coi là giống với số nguyên 200.

Giá trị trả về

Hàm array_search() trả về khóa tương ứng của phần tử được tìm kiếm. Nó trả về một Boolean False nếu giá trị tìm kiếm không được tìm thấy trong mảng, và trả về True nếu giá trị tồn tại trong mảng. Nếu giá trị tìm kiếm xuất hiện nhiều lần trong mảng, thì chỉ khóa tương ứng với khớp đầu tiên sẽ được trả về.

Ví dụ

<?php
$fruits = array("apple", "banana", "orange", "coconut");
echo array_search("banana", $fruits); // Output: 1
?>

Hàm in_array() trong PHP

Hàm in_array() trong PHP là một hàm tích hợp sẵn khác được sử dụng để tìm kiếm một giá trị cụ thể trong một mảng đã cho. Hàm này trả về TRUE nếu giá trị tìm kiếm tồn tại trong mảng và FALSE trong trường hợp ngược lại.

Cú pháp

in_array($value, $array, $strict_parameter);

Các tham số của hàm này như sau:

  • $value (bắt buộc): Tham số này đại diện cho giá trị mà người dùng muốn tìm kiếm trong mảng đã cho.
  • $array (bắt buộc): Tham số này đại diện cho mảng ban đầu, trong đó người dùng muốn tìm kiếm phần tử.
  • $strict_parameter (tùy chọn): Đây là một tham số tùy chọn có thể được đặt thành TRUE hoặc FALSE. Nó đại diện cho tính nghiêm ngặt của việc tìm kiếm trong mảng. Mặc định, tham số này được thiết lập thành Boolean FALSE. Nếu tham số $strict_parameter được đặt thành TRUE, thì hàm sẽ tìm kiếm các giá trị tương tự trong mảng, tức là một chuỗi 200 sẽ không được coi là giống với số nguyên 200. Vì vậy, cả hai giá trị là khác nhau. Nếu tham số $strict_parameter được đặt thành Boolean FALSE, tính nghiêm ngặt không được duy trì và một chuỗi 200 sẽ được coi là giống với số nguyên 200.

Giá trị trả về

Hàm in_array() trả về TRUE nếu giá trị tìm kiếm tồn tại trong mảng và FALSE trong trường hợp ngược lại.

Ví dụ

<?php
$fruits = array("apple", "banana", "orange", "coconut");
if (in_array("banana", $fruits)) {
  echo "Found banana in the fruits array!";
}
?>

Hướng dẫn Tìm giá trị trong một mảng PHP

Để tìm giá trị trong một mảng PHP, bạn có thể sử dụng một trong các phương pháp sau:

  • Sử dụng vòng lặp for

Phương pháp này sẽ lặp qua tất cả các phần tử của mảng và kiểm tra xem mỗi phần tử có bằng giá trị cần tìm hay không.

Ví dụ

<?php

// Tạo một mảng
$array = array("a", "b", "c");

// Tìm giá trị "b"
$found = false;
foreach ($array as $value) {
  if ($value == "b") {
    $found = true;
    break;
  }
}

// Hiển thị kết quả
if ($found) {
  echo "Giá trị 'b' được tìm thấy trong mảng.";
} else {
  echo "Giá trị 'b' không được tìm thấy trong mảng.";
}

?>

Kết quả

Giá trị 'b' được tìm thấy trong mảng.
  • Sử dụng hàm in_array()

Hàm in_array() sẽ kiểm tra xem một giá trị có nằm trong một mảng hay không.

Ví dụ

<?php

// Tạo một mảng
$array = array("a", "b", "c");

// Tìm giá trị "b"
$found = in_array("b", $array);

// Hiển thị kết quả
if ($found) {
  echo "Giá trị 'b' được tìm thấy trong mảng.";
} else {
  echo "Giá trị 'b' không được tìm thấy trong mảng.";
}

?>

Kết quả

Giá trị 'b' được tìm thấy trong mảng.
  • Sử dụng hàm array_search()

Hàm array_search() sẽ trả về vị trí của một giá trị trong một mảng. Nếu giá trị không được tìm thấy, hàm sẽ trả về false.

Ví dụ

<?php

// Tạo một mảng
$array = array("a", "b", "c");

// Tìm giá trị "b"
$index = array_search("b", $array);

// Hiển thị kết quả
if ($index !== false) {
  echo "Giá trị 'b' được tìm thấy trong mảng ở vị trí $index.";
} else {
  echo "Giá trị 'b' không được tìm thấy trong mảng.";
}

?>

Kết quả

Giá trị 'b' được tìm thấy trong mảng ở vị trí 1.

Kết luận

Cách bạn tìm giá trị trong một mảng PHP sẽ phụ thuộc vào nhu cầu cụ thể của bạn. Nếu bạn cần kiểm tra xem một giá trị có nằm trong một mảng hay không, bạn có thể sử dụng hàm in_array(). Nếu bạn cần tìm vị trí của một giá trị trong một mảng, bạn có thể sử dụng hàm array_search().

Ưu và Nhược điểm Tìm giá trị trong một mảng PHP

Ưu điểm

  • Hàm array_search() và in_array() đã được tích hợp sẵn trong PHP, vì vậy không cần phải tạo ra các hàm tìm kiếm riêng của mình.
  • Các hàm này giúp tiết kiệm thời gian và công sức cho các nhà phát triển khi tìm kiếm giá trị trong một mảng.

Nhược điểm

  • Nếu mảng là lớn, việc tìm kiếm có thể trở nên chậm và tốn tài nguyên.## Lời khuyên Tìm giá trị trong một mảng PHP
  • Khi sử dụng hàm array_search () và in_array () để tìm kiếm giá trị trong một mảng, nên đảm bảo rằng mảng không quá lớn. Nếu mảng quá lớn, cần phải tối ưu hóa xử lý để tiết kiệm thời gian và tài nguyên.
  • Sử dụng tham số $strict_parameter với giá trị TRUE khi bạn muốn tìm kiếm các giá trị giống nhau trong mảng.
  • Nếu giá trị tìm kiếm xuất hiện nhiều lần trong mảng, chỉ có khóa tương ứng với khớp đầu tiên sẽ được trả về.

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về hai hàm tích hợp sẵn trong PHP để tìm kiếm giá trị trong một mảng: hàm array_search() và in_array(). Chúng ta đã tìm hiểu cách sử dụng các hàm này, các tham số và giá trị trả về của chúng. Ngoài ra, chúng ta cũng đã xem xét ưu và nhược điểm của việc tìm kiếm giá trị trong một mảng PHP. Hy vọng bài viết này sẽ giúp ích cho bạn khi làm việc với các mảng PHP. 

Hàm nào được sử dụng để tìm kiếm giá trị trong một mảng PHP?

Hàm array_search() và in_array() được sử dụng để tìm kiếm giá trị trong một mảng PHP.

Giá trị trả về của hàm array_search() là gì?

Hàm array_search() trả về khóa tương ứng của phần tử được tìm kiếm. Nó trả về một Boolean False nếu giá trị tìm kiếm không được tìm thấy trong mảng, và trả về True nếu giá trị tồn tại trong mảng.

Hàm in_array() trả về giá trị gì?

Hàm in_array() trả về TRUE nếu giá trị tìm kiếm tồn tại trong mảng và FALSE trong trường hợp ngược lại.

Nên sử dụng tham số $strict_parameter với giá trị nào khi tìm kiếm các giá trị giống nhau trong một mảng?

Nên sử dụng tham số $strict_parameter với giá trị TRUE khi tìm kiếm các giá trị giống nhau trong một mảng.

Nếu giá trị tìm kiếm xuất hiện nhiều lần trong mảng, khóa nào sẽ được trả về?

Nếu giá trị tìm kiếm xuất hiện nhiều lần trong mảng, chỉ có khóa tương ứng với khớp đầu tiên sẽ được trả về.