Khóa tìm kiếm mảng PHP

Và khi kết thúc quá trình này, bạn sẽ có thể tìm ra các giá trị mảng một cách hiệu quả bất kể chúng đã bị chôn sâu đến mức nào

nội dung

Tìm kiếm mảng PHP là gì?

Tìm kiếm mảng PHP là một chức năng cung cấp cơ hội để triển khai thanh tìm kiếm mảng trong chương trình PHP của bạn. Nó chấp nhận một giá trị, một mảng và một tham số nghiêm ngặt tùy chọn. Hàm đã nêu thực hiện tìm kiếm phân biệt chữ hoa chữ thường cho giá trị trong mảng đã cho và trả về khóa khớp đầu tiên của giá trị được tìm kiếm. Tuy nhiên, hàm tìm kiếm mảng PHP sẽ không trả về bất cứ thứ gì nếu không tìm thấy giá trị đã cho

Đây là cú pháp để bạn có thể ghi nhớ vì chúng tôi sẽ trình bày một số ví dụ sau. array_search(giá trị, mảng, nghiêm ngặt) . Tham số "nghiêm ngặt" tùy chọn chấp nhận đúng hoặc sai. Nó đã được giải thích chi tiết với một ví dụ dưới đây trong bài viết này.

– Ví dụ mã hóa

Hãy xem xét ví dụ này. bạn có một mảng kết hợp chứa chi tiết sản phẩm và bạn muốn tìm kiếm một giá trị cụ thể trong mảng. Tại đây, bạn sẽ sử dụng array_search PHP bằng cách chuyển giá trị được yêu cầu và mảng cho nó.

Vui lòng làm theo đoạn mã ví dụ được cung cấp bên dưới để hiểu thêm về ví dụ chúng tôi mô tả là gì


//tạo mảng sản phẩm
$products = mảng(
“#01#” => “Máy tính xách tay”,
“#02#” => “Bàn phím”,
“#03#” => “Máy tính xách tay”,
“#04#” => “CPU”,
“#05#” => “Loa”
);
// sử dụng hàm array_search
$key = array_search(“Máy tính xách tay”,$sản phẩm);
// kiểm tra xem giá trị có được tìm thấy không
nếu như(. trống($key)){
echo “Giá trị đã được tìm thấy đầu tiên trên $key. ”;
}
khác
{
tiếng vang “Xin lỗi. Giá trị chưa được tìm thấy. ”;
}
?>

Bạn sẽ nhận được kết quả này trên trình duyệt của mình sau khi chạy mã này

Giá trị đã được tìm thấy đầu tiên trên #01#

Bật kiểm tra loại

Bây giờ, ở đây bạn sẽ thấy tham số thứ ba của hàm tìm kiếm mảng PHP có nghĩa là gì. Tham số “strict” cho phép đối sánh các loại dữ liệu trong khi thực hiện quá trình tìm kiếm. Bạn có thể coi nó là công tắc có thể bật và tắt bằng cách chuyển đúng và sai tương ứng

– Ví dụ viết mã cho tìm kiếm mảng PHP với kiểu nghiêm ngặt

Ví dụ. bạn có thể đang làm việc với một mảng chứa các số, nhưng vấn đề là một số số được khai báo là số nguyên trong khi các số khác được đặt trong dấu ngoặc kép dưới dạng chuỗi. Vì vậy, bây giờ bạn muốn kiểm tra xem một số cụ thể có tồn tại trong một mảng dưới dạng số nguyên không. Tại đây, bạn sẽ sử dụng hàm tìm kiếm mảng PHP bằng cách chuyển giá trị số nguyên, mảng và giá trị true

Vui lòng xem đoạn mã dưới đây để hiểu rõ hơn về ví dụ được đề xuất của chúng tôi ở trên


// tạo một mảng số
$number = mảng(9, “9”, 10, 5, 7, “8”, 3, “2”);
// sử dụng hàm array_search với kiểu nghiêm ngặt
$key = array_search(9, $number, true);
// in key trả về
tiếng vang $key; . 0
?>

Nó có khác với array_search không?

À, hàm PHP in_array thực hiện ít nhiều chức năng giống như hàm array_search. Tuy nhiên, sự khác biệt giữa chúng nằm ở giá trị mà chúng trả về. Hàm tìm kiếm mảng PHP trả về khóa khớp đầu tiên của giá trị được tìm kiếm. Mặt khác, hàm PHP in_array trả về “1” hoặc “0” tùy thuộc vào sự thành công và thất bại của quá trình tìm kiếm.

Đây là cú pháp

in_array(giá trị, mảng, nghiêm ngặt)

Sẽ rất tốt nếu lưu ý rằng cả hai chức năng đều chấp nhận cùng một loại tham số

– Ví dụ mã hóa cho PHP in_array

Giả sử bạn có một loạt các hương vị kem. Bây giờ, bạn muốn tìm kiếm một hương vị cụ thể trong mảng đã cho. Tại đây, bạn sẽ triển khai hàm in_array của PHP bằng cách chuyển hương vị và mảng cần thiết cho nó

Hãy xem khối mã này để áp dụng thực tế ví dụ của chúng tôi ở trên


// tạo một mảng hương vị
$flavors = array(“Sô-cô-la”, “Dâu tây”, “Vani”, “Việt quất”, “Xoài”);
// sử dụng hàm PHP in_array
$result = in_array(“Vanilla”, $flavors);
// in ra kết quả
tiếng vang $kết quả; . 1
?>

Chọn chức năng nào sẽ sử dụng

Có phải sự giống nhau giữa hàm array_search và hàm in_array của PHP khiến bạn bối rối thay vì làm rõ những nghi ngờ của bạn? . Do đó, nếu bạn muốn sử dụng khóa được trả về của giá trị được tìm kiếm trong chương trình của mình thì hãy chọn array_search trong PHP. Tuy nhiên, nếu bạn không quan tâm đến khóa thì bạn chỉ cần sử dụng hàm PHP in_array

Tìm giá trị trong mảng. Tìm hiểu sâu về PHP >= 5. 5

Bạn có muốn đi sâu vào một mảng nhiều chiều và tìm giá trị cần thiết của mình không? . Vì vậy, bạn sẽ bắt đầu bằng cách sử dụng hàm array_column để lấy cột mà bạn muốn tìm kiếm giá trị. Tiếp theo, bạn sẽ chuyển cột mảng thu được cho tìm kiếm mảng PHP hoặc hàm in_array để bắt đầu quá trình tìm kiếm. array_column function with the array_search or in_array functions proves to be helpful in such a case. So, you’ll begin with using the array_column function to get the column in which you want to search the value. Next, you’ll pass the obtained array column to the PHP array search or in_array function for initiating the search process.

Sẽ rất tốt nếu bạn nhớ rằng trong trường hợp sử dụng hàm array_search, các khóa của mảng ban đầu sẽ không được giữ nguyên. Do đó, khóa được trả về bởi hàm đã cho sẽ theo các khóa được đặt trong mảng mới, được tạo bởi hàm array_column

– Ví dụ mã hóa để tìm kiếm trong mảng đa chiều

Đối với trường hợp tạo một ví dụ mã hóa để giúp bạn hiểu, giả sử bạn có một mảng nhiều chiều bao gồm năm mảng có độ dài bằng nhau. Bây giờ, bạn muốn PHP tìm kiếm mảng cho một giá trị trong cột thứ hai của mỗi mảng bên trong. Do đó, bạn sẽ bắt đầu với việc trích xuất cột thứ hai của các mảng bên trong bằng cách sử dụng hàm array_column. Tiếp theo, bạn sẽ sử dụng hàm array_search hoặc in_array để tìm kiếm giá trị bắt buộc trong cột thu được

Vui lòng thử nghiệm với đoạn mã được cung cấp bên dưới


// tạo mảng nhiều chiều
$ví dụ = mảng(
“R” => mảng(“Hoa Hồng”, “Đỏ”, “Ba”),
“D1” => mảng(“Daffodil”, “Yellow”, “Four”),
“D2” => mảng(“Daisy”, “Trắng”, “Hai”),
“Tôi” => mảng(“Iris”, “Purple”, “Five”),
“C” => mảng(“Cẩm chướng”, “Đỏ”, “Tám”)
);
// sử dụng hàm array_column
$get_colors = array_column($example, 1);
// sử dụng hàm array_search
$key = array_search(“Tím”, $get_colors);
// in key trả về
echo “The purple color has been found on index number: $key.
”;

// sử dụng hàm in_array
$res = in_array(“Tím”, $get_colors);
//kiểm tra nếu giá trị. “Tía” tồn tại
nếu($res == 1){
echo “Màu tím đã được tìm thấy. ”;
}
khác
{
tiếng vang “Xin lỗi. Màu tím chưa được tìm thấy. ”;
}
?>

Đây là đầu ra của khối mã mà chúng tôi đã tạo ở trên

Màu tím đã được tìm thấy trên số chỉ mục. 3

Màu tím đã được tìm thấy

Sự kiên trì chính đa chiều

Mặc dù tổ hợp chức năng được thảo luận ở trên khá hiệu quả, nhưng nó có một vài nhược điểm. Hạn chế đầu tiên là không dùng được hàm array_column ở các phiên bản PHP dưới 5. 5. Hơn nữa, việc sử dụng hàm array_column không cho phép duy trì khóa

Vì vậy, bây giờ bạn nên xem đoạn mã ví dụ được cung cấp bên dưới để tạo và sử dụng hàm do người dùng xác định để giải quyết các sự cố mà chúng tôi vừa đề cập

– Ví dụ mã hóa để tìm kiếm thông qua chức năng do người dùng xác định

Tiếp tục với mảng nhiều chiều được tạo trong ví dụ trước, bây giờ bạn sẽ tạo một hàm do người dùng xác định để tìm kiếm các giá trị. Hàm đã nêu chấp nhận khóa giá trị, mảng và cột

Đây là khối mã hóa hữu ích mà bạn nên xem để gọi chức năng đa tìm kiếm


// tạo mảng nhiều chiều
$ví dụ = mảng(
“R” => mảng(“Hoa Hồng”, “Đỏ”, “Ba”),
“D1” => mảng(“Daffodil”, “Yellow”, “Four”),
“D2” => mảng(“Daisy”, “Trắng”, “Hai”),
“Tôi” => mảng(“Iris”, “Purple”, “Five”),
“C” => mảng(“Cẩm chướng”, “Đỏ”, “Tám”)
);
// tạo hàm do người dùng định nghĩa
hàm multi_search($value, $array, $column) {
foreach ($mảng dưới dạng $key => $value) {
if ($val[$column] === $value) {
trả lại khóa $;
}
}
trả về giá trị rỗng;
}
// gọi hàm multi_search
echo multi_search(“Trắng”, $example, 1); . D2
?>

kết thúc

Kết thúc cuộc thảo luận chất lượng về chức năng tìm kiếm mảng PHP, giờ đây bạn có thể triển khai thanh tìm kiếm mảng trong vài giây. Mặc dù bạn đã hiểu rõ về khái niệm này, nhưng những điểm chính dưới đây sẽ giúp bạn nhiều hơn khi cú pháp và cách sử dụng các hàm khác nhau làm rối tung khái niệm của bạn

  • Hàm array_search PHP giúp tìm ra một giá trị trong một mảng
  • Hàm tìm kiếm mảng PHP chấp nhận một giá trị, mảng và một tham số nghiêm ngặt tùy chọn bật kiểm tra kiểu
  • Hàm tìm kiếm mảng PHP trả về khóa khớp đầu tiên của giá trị đã cho trong một mảng
  • Bạn có thể sử dụng hàm in_array để tìm kiếm một giá trị trong một mảng
  • Sự khác biệt duy nhất giữa array_search và in_array là cái sau không trả về khóa của giá trị đã cho
  • Bạn có thể sử dụng kết hợp hàm array_column và array_search để tìm kiếm một giá trị trong mảng nhiều chiều
  • Một hàm do người dùng định nghĩa có thể giúp tìm kiếm hiệu quả các giá trị trong một mảng nhiều chiều trong khi vẫn giữ được các khóa

Khóa tìm kiếm mảng PHP
Không thể phủ nhận, các hàm tích hợp sẵn như array_search và in_array hoạt động như công cụ hỗ trợ tìm kiếm trong các chương trình PHP của bạn. Những lớp lót đáng kinh ngạc này giúp quá trình tìm kiếm giá trị dễ dàng hơn rất nhiều trong khi hạn chế kích thước tệp PHP của bạn

5/5 - (16 phiếu)

Khóa tìm kiếm mảng PHP

Vị trí là tất cả

Vị trí là tất cả. Tài nguyên Go-To của bạn để Tìm hiểu & Xây dựng. CSS, JavaScript, HTML, PHP, C++ và MYSQL