Cách tìm kiếm mảng cho nhiều giá trị với các ví dụ

Với bài viết này, Chúng tôi sẽ giải đáp vấn đề mà nhiều bạn quan tâm khi viết chương trình Cách Tìm kiếm mảng nhiều giá trị bằng ví dụ.

Cách tìm kiếm mảng cho nhiều giá trị bằng ví dụ - Tìm kiếm mảng cho nhiều giá trị
# Searching the array for multiple values corresponds to the set operations (set difference and intersection), as you will see below.

# In your question, you do not specify which type of array search you want, so I am giving you both options.

# ALL needles exist
function in_array_all($needles, $haystack) {
   return empty(array_diff($needles, $haystack));
}

$animals = ["bear", "tiger", "zebra"];
echo in_array_all(["bear", "zebra"], $animals); // true, both are animals
echo in_array_all(["bear", "toaster"], $animals); // false, toaster is not an animal

# ANY of the needles exist
function in_array_any($needles, $haystack) {
   return !empty(array_intersect($needles, $haystack));
}

$animals = ["bear", "tiger", "zebra"];
echo in_array_any(["toaster", "tiger"], $animals); // true, tiger is an amimal
echo in_array_any(["toaster", "brush"], $animals); // false, no animals here

# Important consideration
/*
If the set of needles you are searching for is small and known upfront, your code might be clearer if you just use the logical chaining of in_array calls, for example:
*/
$animals = ZooAPI.getAllAnimals();
$all = in_array("tiger", $animals) && in_array("toaster", $animals) && ...
$any = in_array("bear", $animals) || in_array("zebra", $animals) || ...

Nếu bạn không hài lòng với câu trả lời của tôi về Cách tìm kiếm mảng cho nhiều giá trị bằng các ví dụ. Xem thêm các chủ đề tương tự hoặc để lại cho tôi một câu hỏi mới. Nếu bạn không hài lòng với câu trả lời của tôi về Cách tìm kiếm mảng cho nhiều giá trị bằng các ví dụ

Làm thế nào để bạn tìm kiếm nhiều giá trị trong một mảng?

Tạo một biến riêng bao gồm tất cả các giá trị bạn muốn tìm kiếm và tìm thấy. Chạy hàm array_intersect chuyển mảng được tìm kiếm làm tham số đầu tiên và mảng tìm kiếm làm tham số thứ hai. Chỉ định kết quả array_intersect cho biến kết quả cuối cùng của bạn

Làm cách nào để tìm một mảng cụ thể?

Sử dụng bộ lọc nếu bạn muốn tìm tất cả các mục trong một mảng đáp ứng một điều kiện cụ thể . Sử dụng find nếu bạn muốn kiểm tra xem ít nhất một mục có đáp ứng một điều kiện cụ thể hay không. Sử dụng bao gồm nếu bạn muốn kiểm tra xem một mảng có chứa một giá trị cụ thể không. Sử dụng indexOf nếu bạn muốn tìm chỉ mục của một mục cụ thể trong một mảng.

Làm cách nào tôi có thể nhận các giá trị chung từ hai mảng trong PHP?

Hàm array_intersect() so sánh giá trị của hai (hoặc nhiều) mảng và trả về kết quả khớp. Hàm này so sánh các giá trị của hai hoặc nhiều mảng và trả về một mảng chứa các mục từ mảng1 có trong mảng2, mảng3, v.v.