Giá trị bộ lọc mảng php

Trong hướng dẫn này, tôi sẽ liệt kê một danh sách các hàm phổ biến về mảng trong PHP với các ví dụ về cách sử dụng và cách làm tốt nhất. Mỗi nhà phát triển PHP phải biết cách sử dụng chúng như thế nào và cách kết hợp các mảng để làm cho mã dễ đọc và rút ngắn

Ngoài ra, còn có một bài thuyết trình đi kèm với các mã ví dụ, bạn có thể tải xuống từ các liên kết liên quan và đưa nó cho đồng nghiệp của bạn xem để xây dựng một đội ngũ ngũ cốc mạnh mẽ hơn

Cơ bản

Hãy bắt đầu với các chức năng cơ bản làm việc với các khóa và giá trị của mảng. Một số trong chúng là array_combine[], nó tạo ra một mảng bằng cách sử dụng các khóa của một mảng và các giá trị của một mảng khác

$keys = ['sky', 'grass', 'orange'];
$values = ['blue', 'green', 'orange'];

$array = array_combine[$keys, $values];
print_r[$array];

// Array
// [
//     [sky] => blue
//     [grass] => green
//     [orange] => orange
// ]

Bạn chắc chắn đã biết, array_values​​​[] trả về một mảng các giá trị đã được đặt chỉ mục, array_keys[] trả về một mảng khóa của một mảng cho trước, và array_flip[] đổi vị trí các khóa với các giá trị

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]

Làm cho mã của bạn ngắn hơn

Hàm list[], nó không thực sự là một hàm, mà là một cấu trúc ngôn ngữ, được thiết kế để gán các biến theo một cách rút gọn. Ví dụ, đây là một ví dụ cơ bản về việc sử dụng hàm

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
6

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;

Cấu trúc này hoạt động một cách hoàn hảo với các chức năng như

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
7 hoặc
// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
8. Ngoài ra, bạn có thể bỏ qua một số tham số, nếu bạn không cần chúng phải được định nghĩa

$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world

Ngoài ra,

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
6 có thể được sử dụng với
$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
0, nó làm cho cấu trúc này thậm chí còn tốt hơn

$arrays = [[1, 2], [3, 4], [5, 6]];

foreach [$arrays as list[$a, $b]] {
    $c = $a + $b;
    echo[$c . ', ']; // 3, 7, 11, 
}

Với hàm extract[], bạn có thể xuất một mảng kết hợp thành các biến. Đối với mỗi phần tử của một mảng, một biến sẽ được tạo ra với tên của một từ khóa và giá trị như một giá trị của biến

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
0

Xin lưu ý rằng

$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
1 không hoàn toàn nếu bạn làm việc với người dùng dữ liệu [như kết quả của các yêu cầu], điều đó tốt hơn là sử dụng chức năng này với cờ
$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
2 và
$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
3

Ngược lại với hàm trước đó là hàm compact[], nó tạo ra một mảng kết hợp từ các biến

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
4

Các Hàm Lọc

Có một hàm tuyệt vời cho mảng, và nó được gọi là array_filter[]. Truyền truy cập vào như một tham số đầu tiên và một hàm ẩn danh làm tham số thứ hai. Trả về

$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
4 trong một hàm gọi lại nếu bạn muốn khôi phục lại phần tử này trong mảng và
$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
5 nếu bạn không muốn

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
7

Có một cách để lọc không chỉ bởi các giá trị. Bạn có thể sử dụng

$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
6 hoặc
$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
7 như một tham số thứ ba để truyền khóa hoặc cả giá trị và khóa vào hàm gọi lại

Đồng thời, bạn có thể gọi cho

$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
8 mà không cần gọi lại để loại bỏ tất cả các giá trị trống

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
1

Bạn có thể nhận được các giá trị duy nhất từ ​​một mảng bằng cách sử dụng hàm array_unique[]. Lưu ý rằng chức năng này sẽ đảm bảo lưu các khóa của các phần tử duy nhất đầu tiên

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
2

Với array_column[], bạn có thể nhận được một danh sách các giá trị cột từ một mảng đa chiều, giống như một câu trả lời từ cơ sở dữ liệu SQL hoặc một lần nhập [nhập] từ một tệp CSV. Chỉ cần truyền vào một mảng và cột tên

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
0

Bắt đầu từ PHP 7,

$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
9 còn trở nên mạnh mẽ hơn, bởi vì bây giờ nó được phép. Vì vậy, làm việc với một mảng các mô hình trở nên dễ dàng hơn

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
1

Duyệt qua các Mảng

Sử dụng array_map[], bạn có thể áp dụng một cuộc gọi lại cho từng phần tử của một mảng. Bạn có thể truyền một tên hàm hoặc ẩn danh hàm để có một mảng mới dựa trên mảng đã cho

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
2

Có một người truyền thuyết nói rằng không có cách nào để truyền các giá trị và khóa của một mảng vào một cuộc gọi lại, nhưng họ có thể phá vỡ điều đó

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
3

Nhưng điều này có vẻ không tốt. Tốt hơn là sử dụng array_walk[] để thay thế. Hàm này trông giống như

$arrays = [[1, 2], [3, 4], [5, 6]];

foreach [$arrays as list[$a, $b]] {
    $c = $a + $b;
    echo[$c . ', ']; // 3, 7, 11, 
}
0, nhưng cách hoạt động khác. Trước đó, một mảng được truyền bằng một tham chiếu, do đó,
$arrays = [[1, 2], [3, 4], [5, 6]];

foreach [$arrays as list[$a, $b]] {
    $c = $a + $b;
    echo[$c . ', ']; // 3, 7, 11, 
}
1 không tạo ra một mảng mới, mà thay đổi mảng đã cho. Vì vậy, với một mảng nguồn, bạn có thể truyền giá trị mảng bằng một tham chiếu trong một cuộc gọi lại. Các khóa của mảng cũng có thể được truyền đi một cách dễ dàng

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
4

Order các Mảng

Cách tốt nhất để hợp nhất hai hoặc nhiều mảng nhất trong PHP là sử dụng hàm array_merge[]. Các phần tử của các mảng sẽ được hợp nhất lại với nhau và các giá trị tương ứng với một khóa sẽ bị ghi đè bằng giá trị cuối cùng

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
5

Để loại bỏ các giá trị của mảng khỏi một mảng khác [hoặc các mảng], hãy sử dụng array_diff[]. Để lấy các giá trị có sẵn trong các mảng cho trước, hãy sử dụng array_intersect[]. Các ví dụ tiếp theo sẽ cho thấy nó hoạt động như thế nào

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
6

Làm toán với các giá trị của Mãng

Sử dụng array_sum[] để lấy tổng giá trị của mảng, array_product[] cho nhân viên, hoặc tạo công thức của riêng bạn với array_reduce[]

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
7

Để đếm tất cả các giá trị của một mảng, hãy sử dụng array_count_values​[]. Nó sẽ cung cấp cho bạn tất cả các giá trị duy nhất của một mảng cho trước như là các khóa và kết quả là việc đếm các giá trị này như là một giá trị

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
8

Create Mảng

Để tạo một mảng với một kích thước được định rõ nhất và các giá trị như nhau, hãy sử dụng array_fill[]

print_r[array_keys[$array]]; // ['sky', 'grass', 'orange']
print_r[array_values[$array]]; // ['blue', 'green', 'orange']
print_r[array_flip[$array]];

// Array
// [
//     [blue] => sky
//     [green] => grass
//     [orange] => orange
// ]
9

Để tạo một mảng với một dãy khóa và giá trị, giống như giờ trong ngày hoặc các ký tự, hãy sử dụng phạm vi []

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
0

Để lấy một phần của mảng, ví dụ, chỉ ba phần tử đầu tiên—sử dụng array_slice[]

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
1

Sắp xếp Mảng

Nên nhớ rằng mọi hàm sắp xếp trong PHP đều hoạt động với các mảng bằng tham chiếu và trả về true nếu thành công hoặc sai nếu thất bại. Có một hàm sắp xếp cơ bản được gọi là sort[], và nó sắp xếp các giá trị theo thứ tự tăng dần mà không lưu các từ khóa. Sắp xếp hạng có thể được thêm vào trước bằng các ký tự sau

  • a, sắp xếp các khóa đã lưu
  • k, sắp xếp theo các khóa
  • r, sắp xếp theo chiều lùi/giảm dần theo thứ tự
  • u, sort to an user function

Bạn có thể thấy sự kết hợp của các chữ cái này trong bảng sau

akruaasort
arsortuasortkksortkrsortrarsortkrsortrsortuuasort
usort

Kết hợp các Hàm Mảng Một cách chuyên nghiệp

Ma thuật thực sự bắt đầu khi bạn kết hợp các mảng chức năng. Dưới đây là cách bạn có thể cắt và xóa các giá trị trống chỉ bằng một dòng mã với

$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
8 và
$arrays = [[1, 2], [3, 4], [5, 6]];

foreach [$arrays as list[$a, $b]] {
    $c = $a + $b;
    echo[$c . ', ']; // 3, 7, 11, 
}
0

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
2

Để tạo một id cho một bản đồ tiêu đề từ một mảng các mô hình, chúng ta có thể sử dụng một sự kết hợp của

$arrays = [[1, 2], [3, 4], [5, 6]];

foreach [$arrays as list[$a, $b]] {
    $c = $a + $b;
    echo[$c . ', ']; // 3, 7, 11, 
}
4 và
$string = 'hello|wild|world';
list[$hello, , $world] = explode['|', $string];
echo["$hello, $world"]; // hello, world
9

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
3

Để có được giá trị đầu tiên của một mảng, chúng ta có thể sử dụng

$arrays = [[1, 2], [3, 4], [5, 6]];

foreach [$arrays as list[$a, $b]] {
    $c = $a + $b;
    echo[$c . ', ']; // 3, 7, 11, 
}
6,
$arrays = [[1, 2], [3, 4], [5, 6]];

foreach [$arrays as list[$a, $b]] {
    $c = $a + $b;
    echo[$c . ', ']; // 3, 7, 11, 
}
7 và
$arrays = [[1, 2], [3, 4], [5, 6]];

foreach [$arrays as list[$a, $b]] {
    $c = $a + $b;
    echo[$c . ', ']; // 3, 7, 11, 
}
8

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
4

Rất dễ sử dụng

$arrays = [[1, 2], [3, 4], [5, 6]];

foreach [$arrays as list[$a, $b]] {
    $c = $a + $b;
    echo[$c . ', ']; // 3, 7, 11, 
}
9 và
$arrays = [[1, 2], [3, 4], [5, 6]];

foreach [$arrays as list[$a, $b]] {
    $c = $a + $b;
    echo[$c . ', ']; // 3, 7, 11, 
}
0 để tính tổng theo thứ tự trong một vài dòng

// define array
$array = ['a', 'b', 'c'];

// without list[]
$a = $array[0];
$b = $array[1];
$c = $array[2];

// with list[]
list[$a, $b, $c] = $array;
5

tóm tắt

Như bạn thấy đó, kiến ​​thức về các hàm chính để thao tác mảng có thể làm cho mã của bạn trở nên ngắn gọn hơn và dễ đọc hơn. Tất nhiên, PHP có nhiều hơn các mảng hàm này, và ngay cả các hàm đã cho cũng có nhiều biến thể để sử dụng với các tham số và cờ, nhưng tôi nghĩ rằng trong hướng dẫn này, chúng ta đã khái quát những điều này

Xin hãy lưu ý rằng tôi đã tạo một bản thuyết trình với các ví dụ đã chọn, để bạn có thể tải xuống từ các liên kết có liên quan và đưa ra cho nhóm của bạn xem

Chủ Đề