Hướng dẫn filter array by value php - lọc mảng theo giá trị php

(Php 4> = 4.0.6, Php 5, Php 7, Php 8)

Array_Filter - Lọc các thành phần của một mảng bằng hàm gọi lạiFilters elements of an array using a callback function

Sự mô tả

mảng_filter (mảng $array,? có thể gọi $callback = null, int $mode = 0): mảng(array $array, ?callable $callback = null, int $mode = 0): array

Các phím mảng được bảo tồn và có thể dẫn đến các khoảng trống nếu array được lập chỉ mục. Mảng kết quả có thể được tái phát bằng hàm mảng_Values ​​().array can be reindexed using the array_values() function.

Thông số

array

Mảng để lặp lại

callback

Chức năng gọi lại để sử dụng

Nếu không có callback được cung cấp, tất cả các mục trống của array sẽ bị xóa. Xem trống () để biết cách PHP định nghĩa trống trong trường hợp này.empty() for how PHP defines empty in this case.

Array
(
    [0] => foo
    [2] => -1
)
2

Cờ xác định những đối số nào được gửi đến callback:

  • Array
    (
        [0] => foo
        [2] => -1
    )
    
    4 - Pass Key làm đối số duy nhất cho callback thay vì giá trị
    - pass key as the only argument to callback instead of the value
  • Array
    (
        [0] => foo
        [2] => -1
    )
    
    6 - Chuyển cả giá trị và khóa làm đối số cho callback thay vì giá trị
    - pass both value and key as arguments to callback instead of the value
Mặc định là
Array
(
    [0] => foo
    [2] => -1
)
8 sẽ chuyển giá trị làm đối số duy nhất cho callback thay thế.

Trả về giá trị

Trả về mảng được lọc.

Thay đổi

Phiên bảnSự mô tả
8.0.0 mảng_filter (mảng $array,? có thể gọi $callback = null, int $mode = 0): mảng
8.0.0 Các phím mảng được bảo tồn và có thể dẫn đến các khoảng trống nếu array được lập chỉ mục. Mảng kết quả có thể được tái phát bằng hàm mảng_Values ​​().
array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
2
.

Thông số

arrayarray_filter() example

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
3

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
4

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
5

Mảng để lặp lại

Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

callbackarray_filter() without callback

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
7

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
8

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
9

Mảng để lặp lại

Array
(
    [0] => foo
    [2] => -1
)

callbackarray_filter() with

Array
(
    [0] => foo
    [2] => -1
)
2

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
7

$array2

$array3

Mảng để lặp lại

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}

callback

Chức năng gọi lại để sử dụng

Nếu không có callback được cung cấp, tất cả các mục trống của array sẽ bị xóa. Xem trống () để biết cách PHP định nghĩa trống trong trường hợp này.

Array ( [0] => foo [2] => -1 ) 2

  • Cờ xác định những đối số nào được gửi đến callback:
  • Array
    (
        [0] => foo
        [2] => -1
    )
    
    4 - Pass Key làm đối số duy nhất cho callback thay vì giá trị
  • Array
    (
        [0] => foo
        [2] => -1
    )
    
    6 - Chuyển cả giá trị và khóa làm đối số cho callback thay vì giá trị
  • Mặc định là
    Array
    (
        [0] => foo
        [2] => -1
    )
    
    8 sẽ chuyển giá trị làm đối số duy nhất cho callback thay thế.

Trả về giá trị

Trả về mảng được lọc.

$array4

Thay đổi

Phiên bản

$array5

$array6

$array7

$array8

$array9

$callback0

callback bây giờ là vô hiệu.

Nếu callback mong đợi một tham số được truyền qua tham chiếu, chức năng này bây giờ sẽ phát ra một

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
2.

$callback1

$callback2

$callback3

$callback0

Ví dụ

Ví dụ #1 Array_filter () ví dụ

$callback5

$callback6

$callback7

$callback8

$callback9

$callback0

Ví dụ trên sẽ xuất ra:

Ví dụ #2 mảng_filter () mà không có callback

null1

null2

null3

null4

null5

null6

null7

null8

null9

$mode0

$callback0

Ví dụ #3 mảng_filter () với

Array
(
    [0] => foo
    [2] => -1
)
2

Ghi chú

$mode2

$mode3

$callback0

Thận trọng

Nếu mảng được thay đổi từ chức năng gọi lại (ví dụ: phần tử được thêm, đã xóa hoặc giải phóng), hành vi của hàm này không được xác định.

$mode5

$mode6

$mode7

$mode8

$callback0

Xem thêm

Array_Intersect () - Tính toán giao điểm của mảng

array0

array1

array2

array3

array4