Tìm kiếm mảng kết hợp trong php

Mảng kết hợp trong PHP rất linh hoạt theo nghĩa là chúng có thể lưu trữ các loại dữ liệu hỗn hợp dưới dạng khóa và giá trị. Bây giờ nếu chúng ta phải lọc ra các khóa hoặc giá trị dựa trên kiểu dữ liệu của chúng, chúng ta phải tìm kiếm trong mảng để lọc nó. Trong bài viết này, chúng ta sẽ thấy một số tùy chọn để tìm kiếm các số nguyên trong mảng kết hợp PHP

Vì vậy, hãy đi thẳng vào chủ đề

Mục lục

Tùy chọn #1 – Tìm kiếm số nguyên trong mảng kết hợp bằng vòng lặp foreach

Sử dụng vòng lặp foreach là điều đầu tiên bạn nghĩ đến khi chúng ta có một mảng để lặp qua. Ở đây chúng ta sẽ xem cách sử dụng vòng lặp foreach để tìm kiếm các khóa và giá trị số nguyên

Tìm kiếm các giá trị nguyên trong mảng kết hợp bằng vòng lặp foreach

Trong ví dụ này, chúng tôi sẽ sử dụng vòng lặp foreach để lặp qua một mảng và lọc ra các giá trị số nguyên

 "Susan",
    1 => 2,
    5 => "Daniel",
    3 => 4,
    6 => "Kylie",
    7 => 100,
    8 => 2021,
    9 => "Richard",
    10 => 121
);
 
 
//Get the filtered response.
$filtered_arr = array();
 
//Loop through the values
foreach($arr as $key=>$value)
{
    //If the value is integer.
    if(gettype($value) == 'integer')
    {
        $filtered_arr[$key] = $value;
    } 
}
 
print_r($filtered_arr);
 
/*
OUTPUT
Array
(
    [1] => 2   
    [3] => 4   
    [7] => 100 
    [8] => 2021
    [10] => 121
)
*/
 
?>

Hàm gettype trong PHP trả về kiểu dữ liệu của giá trị và nếu nó là số nguyên thì chúng ta chuyển nó vào mảng đã lọc. Cuối cùng, chúng tôi in mảng cuối cùng và nhận các giá trị số nguyên cùng với các khóa ban đầu của chúng

Tìm kiếm các giá trị chính trong mảng kết hợp bằng vòng lặp foreach

Bây giờ, chúng ta có thể lọc ra mảng dựa trên kiểu dữ liệu của các giá trị chính. Hãy xem một mảng với các giá trị chính của các kiểu dữ liệu hỗn hợp

 "Susan",
    "One" => 2,
    5 => "Daniel",
    "Three" => 4,
    6 => "Kylie",
    7 => 100,
    "Eight" => 2021,
    9 => "Richard",
    "Ten" => 121
);
 
 
//Get the filtered response.
$filtered_arr = array();
 
//Loop through the values
foreach($arr as $key=>$value)
{
    //If the value is integer.
    if(gettype($key) == 'integer')
    {
        $filtered_arr[$key] = $value;
    } 
}
 
print_r($filtered_arr);
 
/*
OUTPUT
Array
(
    [0] => Susan  
    [5] => Daniel 
    [6] => Kylie  
    [7] => 100    
    [9] => Richard
)
*/
 
?>

Với một chút thay đổi, mã lọc ra khóa số nguyên trong một mảng. Tuyệt vời. Hãy xem một phương pháp tìm kiếm số nguyên rất phức tạp khác trong mảng kết hợp

Tùy chọn #2 – Tìm kiếm số nguyên trong mảng kết hợp bằng cách sử dụng array_filter

Hàm array_filter trong PHP nhận một hàm gọi lại và dựa trên giá trị trả về, nó lọc ra một mảng. Chúng tôi sẽ sử dụng array_filter để tìm kiếm số nguyên trong một mảng kết hợp. Nhưng trước đó, hãy xem giải phẫu của chức năng này

Sự miêu tả

Lọc các phần tử mảng bằng hàm gọi lại

Chữ ký chức năng

array_filter(array $array, ?callable$callback = null, int $mode = 0): array

Tranh luận

  • $array – Mảng để lọc
  • $callback – Hàm do người dùng định nghĩa
  • $mode – Cờ xác định tham số của hàm gọi lại

Ghi chú

$mode chấp nhận các giá trị cờ sau.  

  • ARRAY_FILTER_USE_KEY – chuyển khóa làm đối số duy nhất để gọi lại thay vì giá trị
  • ARRAY_FILTER_USE_BOTH – chuyển cả giá trị và khóa làm đối số để gọi lại thay vì giá trị

Theo mặc định, hàm chỉ chuyển các giá trị chính cho hàm gọi lại

Loại trả lại

Hàm trả về một mảng đã lọc

Tìm kiếm các giá trị số nguyên trong mảng kết hợp sử dụng array_filter

Chúng tôi sẽ xác định một chức năng gọi lại có tên, isInt. Hàm nhận giá trị và trả về true nếu kiểu là số nguyên. Do đó, các giá trị nguyên được lọc ra mảng đầu ra

 "Susan",
    1 => 2,
    5 => "Daniel",
    3 => 4,
    6 => "Kylie",
    7 => 100,
    8 => 2021,
    9 => "Richard",
    10 => 121
);
 
 
//User defined callback function
function isInt($value)
{
    return gettype($value) == 'integer';
}
 
//Filter array based on callback function isInt
$filtered_arr = array_filter($arr,"isInt");
 
 
print_r($filtered_arr);
 
/*
OUTPUT
Array
(
    [1] => 2   
    [3] => 4   
    [7] => 100 
    [8] => 2021
    [10] => 121
)
*/
 
?>

khá gọn gàng. Hàm do người dùng xác định xác định các giá trị số nguyên và lọc chúng thành một mảng đầu ra

Tìm kiếm các khóa số nguyên trong mảng kết hợp bằng array_filter

Bây giờ, hãy tìm các khóa số nguyên bằng cách sử dụng array_filter. Chúng tôi sẽ chuyển ARRAY_FILTER_USE_KEY làm đối số hàm $mode. Với thay đổi này, hàm sẽ chuyển các khóa cho hàm gọi lại thay vì các giá trị

 "Susan",
    "One" => 2,
    5 => "Daniel",
    "Three" => 4,
    6 => "Kylie",
    7 => 100,
    "Eight" => 2021,
    9 => "Richard",
    "Ten" => 121
);
 
 
//User defined callback function
function isInt($key)
{
    return gettype($key) == 'integer';
}
 
//Filter array based on callback function isInt
$filtered_arr = array_filter($arr,"isInt",ARRAY_FILTER_USE_KEY);
 
 
print_r($filtered_arr);
 
/*
OUTPUT
Array
(
    [0] => Susan  
    [5] => Daniel 
    [6] => Kylie  
    [7] => 100    
    [9] => Richard
)
*/
 
 
?>

Thấy không, tiện lợi làm sao. Chức năng này là một lớp lót hoàn thành các hoạt động lọc một cách hiệu quả.  

Phần kết luận

Chúng ta đã thấy một số tùy chọn để tìm kiếm số nguyên trong mảng kết hợp trong PHP. Tùy chọn đầu tiên bao gồm vòng lặp foreach trong khi tùy chọn thứ hai sử dụng cách tiếp cận array_filter phức tạp hơn. Vì vậy, chúng tôi hy vọng bạn đã học được điều gì đó mới hôm nay. Đến đây là hết bài viết. Hãy theo dõi các bài viết thú vị hơn về PHP

Bạn muốn khám phá thêm các bài hướng dẫn PHP hữu ích?

Chúng tôi có nhiều bài viết thú vị liên quan đến PHP. Bạn có thể khám phá những điều này để tìm hiểu thêm về PHP

Cách sắp xếp một mảng kết hợp trong PHP

Tuần tự hóa PHP so với json_encode

Cách lấy đầu vào biểu mẫu và đặt chúng vào một mảng kết hợp PHP

Bài viết liên quan

Tìm kiếm mảng kết hợp trong php
Cách lọc mảng đối tượng theo khóa bằng ví dụ về mã PHP
Tìm kiếm mảng kết hợp trong php
Cách lọc đối tượng mảng theo giá trị bằng ví dụ về mã PHP
Tìm kiếm mảng kết hợp trong php
Lọc mảng đa chiều . Ví dụ về mã 2023
Tìm kiếm mảng kết hợp trong php
Search for Multiple Values in PHP Array | 2023 Code Examples


  • ← Sự khác nhau giữa vòng lặp while và do while trong PHP
  • Cách sắp xếp mảng kết hợp trong PHP →

Viết mã tốt hơn nhanh hơn

Nhấp vào đây để nhận các bí mật hàng đầu 'Trở thành Rockstar PHP Dev trong 7 ngày' của chúng tôi được gửi đến hộp thư đến của bạn

đăng ký

Tìm kiếm mảng kết hợp trong php

Stephen Phép Lạ

Chào. Tôi hy vọng bạn thích bài viết này. Tôi đã phát triển các trang web và phần mềm một cách chuyên nghiệp trong hơn 20 năm. Tôi bắt đầu FuelingPHP như một cách để đền đáp lại cộng đồng nguồn mở đã giúp tôi có thể sống thoải mái khi xây dựng những thứ tôi yêu thích

Làm cách nào để tìm kiếm dữ liệu từ mảng kết hợp trong PHP?

Trả lời. Sử dụng hàm array_values() của PHP .

Làm cách nào để kiểm tra xem một giá trị có tồn tại trong một mảng kết hợp trong PHP không?

Hàm PHP array_key_exists() .

Làm cách nào để lặp qua mảng kết hợp trong PHP?

Phương thức foreach() được sử dụng để lặp qua các phần tử trong một mảng được lập chỉ mục hoặc mảng kết hợp. Nó cũng có thể được sử dụng để lặp lại các đối tượng. Điều này cho phép bạn chạy các khối mã cho từng thành phần.

Làm cách nào để tìm kiếm một phần tử trong một mảng trong PHP?

Hàm array_search() tìm kiếm một mảng cho một giá trị và trả về khóa.