Hướng dẫn array_filter multidimensional php - array_filter php đa chiều

Nói rằng tôi có một mảng như:

$arr[] = array("id" => 11, "name" => "First");
$arr[] = array("id" => 52, "name" => "Second");
$arr[] = array("id" => 6, "name" => "Third");
$arr[] = array("id" => 43, "name" => "Fourth");

Tôi muốn lấy tên tương ứng với một ID nhất định để tôi có thể làm:

$name = findNameFromID(43);

và nhận được, ví dụ, "thứ tư".

Tôi đã nghĩ đến việc sử dụng array_filter nhưng tôi hơi mắc kẹt về cách truyền chính xác một biến. Tôi đã thấy những câu hỏi như câu hỏi này nhưng dường như tôi không thể mở rộng giải pháp cho một mảng đa chiều.

Bất kỳ trợ giúp?

Hướng dẫn array_filter multidimensional php - array_filter php đa chiều

Hỏi ngày 30 tháng 1 năm 2012 lúc 22:30Jan 30, 2012 at 22:30

findNameFromID($array,$ID) {
     return array_values(array_filter($array, function($arrayValue) use($ID) { return $arrayValue['id'] == $ID; } ));
}

$name = findNameFromID($arr,43);
if (count($name) > 0) {
    $name = $name[0]['name'];
} else {
    echo 'No match found';
}

Php 5.3.0 trở lên

CHỈNH SỬA

hoặc biến thể:

findNameFromID($array,$ID) {
    $results = array_values(array_filter($array, function($arrayValue) use($ID) { return $arrayValue['id'] == $ID; } ));
    if (count($results) > 0) {
        return $name[0]['name'];
    } else {
        return FALSE;
    }
}

$name = findNameFromID($arr,43);
if (!$name) {
    echo 'No match found';
}

Chỉnh sửa #2

Và từ Php 5.5, chúng ta có thể sử dụng Array_Column ()

findNameFromID($array, $ID) {
    $results = array_column($array, 'name', 'id');
    return (isset($results[$ID])) ? $results[$ID] : FALSE;
}

Đã trả lời ngày 30 tháng 1 năm 2012 lúc 22:36Jan 30, 2012 at 22:36

Hướng dẫn array_filter multidimensional php - array_filter php đa chiều

Mark Bakermark BakerMark Baker

207K31 Huy hiệu vàng338 Huy hiệu bạc380 Huy hiệu Đồng31 gold badges338 silver badges380 bronze badges

0

Xin chào! Trong bài đăng ngày hôm nay, hãy để xem cách lọc mảng đa chiều theo giá trị chính trong PHP. PHP cung cấp các chức năng rộng lớn để thao tác các mảng mà Array_Filter làm cho điều không thể tưởng tượng được. Hàm cho phép bạn lọc các phần tử của một mảng với các cuộc gọi lại tùy chỉnh.how to filter multidimensional array by key value in php. PHP offers extensive functions to manipulate arrays of which array_filter makes the unimaginable possible. The function allows you to filter elements of an array with custom callbacks.

Đang Xem: Lọc Multi

Các mảng đa chiều đủ phức tạp nhưng lọc chúng theo giá trị chính là đau đầu vì bạn phải lặp lại từng phần tử và tìm kiếm các giá trị khóa cụ thể để lọc nó. Nhưng hàm ARRAY_FILTER () của PHP cung cấp một cách ngắn và đơn giản để lọc mảng đa chiều theo khóa và giá trị. Bạn phải sử dụng bộ lọc gọi lại thích hợp và phần còn lại là Cake Walk.array_filter() function provides a short and simple way to filter multidimensional array by key and value. You have to use the appropriate callback filter and the rest is cake walk.

Hướng dẫn array_filter multidimensional php - array_filter php đa chiều

  • PHP - Lọc mảng đa chiều theo giá trị chính:
    • Lọc mảng bằng các giá trị khóa Mutiple:

PHP - Lọc mảng đa chiều theo giá trị chính:

Trước khi chúng tôi bắt đầu quá trình, một chút giới thiệu về hàm mảng_filter ().

Nó cho phép bạn lọc mảng bằng giá trị bằng cách sử dụng gọi lại tùy chỉnh. Nó chiếm ba tham số, 1. Nguồn, 2. Hàm gọi lại hoạt động như bộ lọc có điều kiện và 3. Cờ để xác định xem phím, giá trị hoặc cả hai nên được sử dụng để lọc.

Xem xét các mảng đa chiều sau,

Mảng (=> mảng (=> john => johnmydomain.com => sales)) Bây giờ hãy để xem cách lọc mảng này để kết quả chỉ chứa các yếu tố có bộ phận bán hàng của họ => bán hàng. Ở đây, bộ phận này là chìa khóa và doanh số bán hàng là giá trị.
mydomain.com => Sales ))Now let”s see how to filter this array so that the result only contains the elements that have their “dept => Sales”. Here “dept” is the key and “Sales” is the value.

Xem thênm: Cách tố Cáo trong liên quân di động, Mách bạn về những kẻ gian

Tiết John John, email, email => ) {return ($ var == $ Filter);});
mydomain.com”, “dept”=>”Sales”));$filter = “Sales”;$new_array = array_filter($myarray, function($var) use ($filter){ return ($var<"dept"> == $filter);});echo “”;print_r($new_array);?>Above code will produce the following output,

Output:

Mảng (=> mảng (=> lilly => lillymyDomain.com => sales)) Xin lưu ý rằng chúng tôi đang lọc mảng đa chiều là một mảng hoặc mảng. Vì vậy, ở đây mỗi phần tử là một mảng khác. Những gì chức năng đã làm là, kiểm tra từng mảng so với điều kiện đã cho và giữ nó trong kết quả nếu nó đi qua điều kiện khác loại bỏ nó.
mydomain.com => Sales ))Please note that we are filtering multi-dimensional array which is an array or arrays. So, here each element is itself another array. What the function did is, check each array against the given condition, and keep it in the result if it passes through the condition else remove it.

Lọc mảng bằng các giá trị khóa Mutiple:

Trong ví dụ trước, chúng tôi đã sử dụng một bộ lọc có điều kiện duy nhất, nhưng bạn cũng có thể lọc nó bằng nhiều giá trị.

Xem xét ví dụ sau,

Tiết John John, email, email => $ var) Sử dụng ($ Filter) {return in_array ($ var, $ filter);}); => Tài chính)) Trong mã trên, chúng tôi đã lọc SourcearRay chỉ để chứa các phần tử đó (mảng) có tên của chúng trong danh sách chúng tôi cung cấp. Khi bạn cung cấp một điều kiện lọc riêng biệt trong cuộc gọi lại, bạn phải bao gồm sử dụng trên mạng trước khi nó.
mydomain.com”, “dept”=>”Sales”));$filter = array(“Lilly”, “Whites”);$new_array = array_filter($myarray, function($var) use ($filter){ return in_array($var<"name">, $filter);});echo “”;print_r($new_array);?>Output:Array( <1> => Array ( => Lilly => lilly
mydomain.com => Finance ))In the above code, we have filtered the sourcearray only to contain those elements (arrays) which have their name in the list we provided. When you provide a separate filtering condition in the callback, you must include “use” before it.

Đọc thêm:

Tương tự như vậy, bạn có thể lọc mảng đa chiều theo giá trị khóa với PHP. Lọc một chiều hoặc đơn giản là mảng đơn giản hơn nhiều khi thực hiện nó với hai hoặc nhiều chiều. Tôi hi vọng cái này giúp được. Vui lòng chia sẻ bài đăng nếu bạn thấy nó hữu ích 🙂

Tiết lộ liên kết: Trang web này là người tham gia Chương trình Associates Associates của Amazon Services, một chương trình quảng cáo liên kết được thiết kế để cung cấp một phương tiện để các trang web kiếm phí quảng cáo bằng cách quảng cáo và liên kết với Amazon (.com, .in, v.v.) Có thể được liên kết với chương trình Amazon Service LLC Associates.

Xem thêmm: sửa lỗi Ethernet Limited

in4tintuc.com sử dụng các liên kết liên kết đến các thương nhân trực tuyến và nhận được bồi thường cho doanh số được giới thiệu của một số hoặc tất cả các sản phẩm được đề cập nhưng không ảnh hưởng đến giá của sản phẩm. Tất cả giá được hiển thị trên trang web này có thể thay đổi mà không cần thông báo trước. Mặc dù chúng tôi làm hết sức mình để giữ cho tất cả các liên kết được cập nhật và hợp lệ hàng ngày, chúng tôi không thể đảm bảo tính chính xác của các liên kết và ưu đãi đặc biệt được hiển thị.