1. Hàm in_array trong PHP

Hàm in_array() trong PHP được dùng để kiểm tra một mảng trong PHP . Cụ thể hàm in_array() sẽ kiểm tra xem giá trị truyền vào hàm có tồn tại ở trong mảng hay không. Giá trị cần kiểm tra có thể là một đối tượng (object), một mảng (array), một chuỗi (string), một số nguyên (int), số thực (float) hoặc kiểu luận lý (bool) hay thậm chí là Null. Hàm in_array() sẽ trả về True nếu giá trị cần kiểm tra tồn tại trong mảng. Ngược lại False sẽ được trả về nếu như giá trị cần kiểm tra không tồn tại trong mảng. Ta cũng có thể truyền vào thêm tham số thứ ba cho hàm in_array() để kiểm tra độ chặt chẽ của các giá trị. Hàm in_array() được giới thiệu và sử dụng từ phiên bản PHP 4.0

2. Cú pháp của hàm in_array() trong PHP

Ta có cú pháp của hàm in_array() trong PHP là :

in_array($val, $array, $mode )

Trong đó :

  • $val : Đây là tham số bắt buộc sẽ chỉ định phần tử hoặc giá trị cần được tìm kiếm trong mảng đã cho. Tham số này có thể là kiểu hỗn hợp, tức là, nó có thể là kiểu chuỗi hoặc kiểu số nguyên, hoặc bất kỳ kiểu nào khác. Nếu tham số này thuộc loại chuỗi thì việc tìm kiếm sẽ được thực hiện theo cách phân biệt chữ hoa chữ thường.
  • $array : Đây là một tham số bắt buộc và nó chỉ định mảng mà chúng ta muốn tìm kiếm giá trị $val .
  • $mode : Đây là một tham số tùy chọn và thuộc kiểu boolean. Tham số này chỉ định chế độ mà chúng ta muốn thực hiện tìm kiếm. Nếu nó được đặt thành True , thì hàm in_array() sẽ tìm kiếm giá trị có cùng kiểu giá trị như được chỉ định bởi tham số $val . Giá trị mặc định của tham số này là False

Hàm in_array() sẽ trả về một giá trị kiểu boolean . Nếu như $val có tồn tại trong $array thì giá trị trả về là True . Ngược lại nếu $val không tồn tại trong $array thì giá trị trả về sẽ là False .

Ví dụ : tìm kiếm giá trị “PHP” trong một mảng

<?php
$a = array("PHP", "Java", "Python", "HTML");

echo in_array("PHP", $a);
?>


Kết quả

1

Đây là ví dụ sử dụng in_array() một cách đơn giản. Trong ví dụ này thì tham số $mode của hàm in_array() được đặt mặc định là False . Ta có thể sử dụng kết hợp với một vòng lặp in ra câu lệnh sử dụng kèm với hàm in_array()

<?php
$a = array("PHP", "Java", "Python", "HTML");

if (in_array("PHP", $a))
  {
  echo "Tồn tại";
  }
else
  {
  echo "Không tồn tại";
  }
?>

Kết quả

Tồn tại

3. Ví dụ về hàm in_array() trong PHP

Ví dụ 1:

<?php
$a1 = array(100, 65, 70, 87);
if (in_array("100", $a1))
{
    echo "Tồn tại";
}
else
{
    echo "Không tồn tại";
}
?>

Kết quả

Tồn tại

Trong ví dụ này vì tham số $mode của hàm in_array() được đặt mặc định là False nên nó sẽ không kiểm tra nghiêm ngặt giá trị. Hay ta có thể hiểu nó sẽ bỏ qua kiểu giá trị để so sánh . Dù ta tìm kiếm giá trị kiểu chuỗi là 100 nhưng trong hàm $a1 lại chỉ có giá trị kiểu số là 100 . Nhưng vì $mode là False nên hàm in_array() vẫn trả về giá trị True .

Ví dụ 2:

<?php
$a1 = array(100, 65, 70, 87);
if (in_array("100", $a1, true))
{
    echo "Tồn tại";
}
else
{
    echo "Không tồn tại";
}
?>

Kết quả

Không tồn tại

Ví dụ này cũng tương tự như ví dụ trên. Chỉ khác là tham số $mode của hàm in_array() được sửa thành True . Lúc này sự so sánh nghiêm ngặt sẽ được áp dụng để so sánh những giá trị . Đương nhiên giá trị cần tìm kiếm là 100 kiểu chuỗi sẽ không tồn tại trong hàm $a1 vì nó chỉ có giá trị là 100 kiểu số . Vì vậy hàm in_array() sẽ trả về False .

Ví dụ 3:

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "Mảng được tìm thấy" . "<br>";
}else echo "Mảng không được tìm thấy";

if (in_array(array('t', 'r'), $a)) {
    echo "Mảng được tìm thấy". "<br>";
}else echo "Mảng không được tìm thấy". "<br>";

if (in_array('o', $a)) {
    echo "Mảng được tìm thấy";
}else echo "Mảng không được tìm thấy";
?>

Kết quả

Mảng được tìm thấy
Mảng không được tìm thấy
Mảng được tìm thấy

Ta cũng có thể truyền vào hàm in_array() và tìm kiếm mảng trong mảng.