Mảng giải nén PHP

PHP có toán tử trải rộng (...) cho phép giải nén các mảng. Khi mảng có tiền tố là toán tử trải rộng, một phần tử mảng được trải rộng tại chỗ. Toán tử trải rộng có thể được sử dụng nhiều lần

 red [1] => green [2] => blue [3] => gray [4] => orange)

Trong các phiên bản trước PHP 8. 1, toán tử trải rộng chỉ có thể được sử dụng cho các mảng có phím số. Sử dụng một mảng có các khóa chuỗi, PHP dẫn đến một lỗi nghiêm trọng

Kể từ PHP 8. 1, toán tử trải rộng có thể được sử dụng để giải nén một mảng bằng các phím chuỗi

 'red', 'b' => 'green'];
$array = [...$array1, ...['c' => 'blue']];

print_r($array); // ([a] => red [b] => green [c] => blue)

Toán tử trải rộng sử dụng các quy tắc giống như hàm array_merge khi hợp nhất hai mảng với các khóa trùng lặp. Các mảng được hợp nhất theo thứ tự chúng được truyền và các phím số được đánh số lại

Hôm nay tôi muốn viết về 2 tính năng mới về mảng mới được thêm vào trong php 8. 1. Phương pháp giải nén mảng được thêm vào PHP trong 7. 4 nhưng chúng tôi chỉ có thể sử dụng phiên bản này cho số nguyên. Nhưng bây giờ chúng ta có thể sử dụng nó cho tất cả các loại mảng. Đây là một sự phát triển tốt cho chúng tôi

Array Unpack là gì và chúng ta có thể sử dụng nó ở đâu?

Kể từ PHP 7. 4 chúng ta có thể sử dụng giải nén với toán tử trải rộng. Nếu bạn có nền tảng javascript hoặc quan tâm đến điều đó, bạn nên biết toán tử trải rộng (…) từ ngôn ngữ này. Chủ yếu nó chỉ là 3 dấu chấm. Và điều này kết hợp một mảng với một mảng khác

Trước PHP 8. 1 như tôi đã đề cập ở trên, chúng ta có thể sử dụng toán tử trải rộng để hợp nhất các mảng chỉ có các khóa số nguyên. Giải nén mảng thực sự có kết quả tương tự với phương thức array_merge gốc. Với 8. 1, chúng tôi có thể sử dụng toán tử trải rộng với các khóa dựa trên chuỗi và chúng tôi không gặp phải bất kỳ lỗi nghiêm trọng nào. )

Hãy xem một số ví dụ

trước 8. 1

Lỗi nghiêm trọng. Không thể giải nén mảng bằng các khóa chuỗi trong… trên dòng…

Như bạn có thể thấy nếu bạn muốn hợp nhất các mảng với toán tử trải rộng, bạn chỉ hợp nhất các mảng bằng các khóa số nguyên. Nếu không, bạn sẽ nhận được lỗi không thể giải nén mảng với các phím chuỗi

Với 8. 1

thì đấy. Không có lỗi nghiêm trọng ở đây

Như bạn có thể thấy ở trên, toán tử trải phổ (…) và array_merge thực sự giống nhau. Bạn có thể sử dụng cả hai để kết hợp các mảng

Tác động tương thích ngược

Toán tử giải nén mảng không hỗ trợ khóa chuỗi trước PHP 8. 1 và dẫn đến một lỗi nghiêm trọng. Mã hiện có chạy thành công trên các phiên bản cũ hơn sẽ không gây ra bất kỳ sự cố nào trong PHP 8. 1 hoặc muộn hơn

array_merge dẫn đến kết quả giống hệt nhau trong tất cả các phiên bản PHP. array_merge và nên được sử dụng trên mã yêu cầu khả năng tương thích với các phiên bản PHP trước 8. 1

Phương thức Array_is_list

Xác định xem array đã cho có phải là một danh sách không. Một mảng được coi là một danh sách nếu các khóa của nó bao gồm các số liên tiếp từ 0 đến count($array)-1

Phương thức array_is_list chủ yếu kiểm tra xem mảng có khóa bắt đầu từ 0 hay không và trả về kết quả boolean của thao tác này. Nếu bạn có kiến ​​thức cơ bản về Python, bạn sẽ nhớ danh sách là gì nhưng hãy giải thích trong danh sách ngắn là các mảng có tất cả các khóa từ 0 đến count($array)-1

Tham gia bản tin của tôi

Giải nén trong PHP là gì?

Hàm unpack() giải nén dữ liệu từ một chuỗi nhị phân .

Làm cách nào để làm phẳng một mảng trong PHP?

Bằng cách sử dụng toán tử splat (. ), mọi phần tử của mảng hai chiều đều được chuyển thành đối số cho array_merge . Giải pháp là sử dụng array_values ​​trong những trường hợp đó. $twoDimensionalArray = [ 'x' => ['first', 'array'], 'y' => ['second', 'array'] ]; .

Array_keys() dùng để làm gì trong PHP?

Mảng_keys() là một hàm tích hợp sẵn trong PHP và được sử dụng để trả về tất cả các khóa của và mảng hoặc tập hợp con của các khóa. Parameters: The function takes three parameters out of which one is mandatory and other two are optional.

Làm cách nào để đọc mảng trong PHP?

Đọc phần tử mảng. Để truy cập một phần tử trong một mảng, bạn viết tên biến của mảng, theo sau là chỉ số của phần tử trong dấu ngoặc vuông. $myArray[ chỉ số ].
Thay đổi giá trị phần tử. .
Thêm phần tử. .
Loại bỏ các yếu tố. .
Xuất một mảng với print_r().
Tóm lược