Tôi trình bày bạn: Archive Array
Sử dụng mẫu.
Mã lớp
TLDR: Đôi khi bạn cần một bản hack như thế này để hoàn thành công việc nhanh chóng! Sometimes you need a hack like this to get the job done fast!
Câu hỏi của ông có thể có tranh cãi mạnh mẽ, và đi ngược lại những lời dạy của khoa học máy tính. [Trước khi bạn chụp, hãy đọc toàn bộ] nhưng có những trường hợp bạn muốn điều này xảy ra. = X
Ví dụ: bạn có một cơ sở mã, điều khiển một tập hợp các đối tượng mảng được chỉ định. Và do sử dụng lặp đi lặp lại của nó [vòng lặp ?, đệ quy?]. Nó ghi đè hoặc xác định lại kết quả. Cho đến khi bộ cuối cùng được đưa ra.
Và khi bạn có tất cả mọi thứ đã hoàn thành. Bạn đột nhiên nhận ra thông số kỹ thuật của khách hàng [hoặc] của bạn đã thay đổi. Thay vì dữ liệu cuối cùng, bạn muốn mọi dữ liệu ở giữa [do đó muốn nhiều hơn 1 dữ liệu cho mỗi khóa]. Và trong trường hợp không may, hệ thống của bạn đã hoàn thành theo cách phức tạp như vậy, đó là một nỗi đau trong!@#$ Để thay đổi mọi thứ để làm việc với mảng đa chiều một cách dễ dàng [có nghĩa là thay thế sẽ không hoạt động Các cuộc gọi động]. Vậy bạn làm gì> ??
Đây thực sự là một kịch bản tôi gặp gần đây, nhưng có một bản hack đơn giản cho việc này, vẫn đảm bảo tất cả mã của bạn vẫn hoạt động, trong khi vẫn giữ dữ liệu cũ.
Kết quả cuối cùng, một lớp vẫn có thể được đối xử như bất kỳ đối tượng nào khác. Nhưng đã đạt được một khả năng lưu trữ, để giữ dữ liệu cũ. Nó sắp xếp một mảng đa chiều, với chỉ mục [0] được truy cập trực tiếp. Và nó hoạt động đơn giản bằng cách thay đổi khai báo biến với đối tượng này. Và bất kỳ thay đổi nào được thực hiện cho tham số đối tượng, sẽ được lưu trữ. Để dễ dàng truy cập, với tối thiểu hoặc không thay đổi trong toàn bộ chương trình mã =]
[Php 5> = 5.1.0, Php 7, Php 8]
Array_intersect_key - Tính toán giao điểm của các mảng bằng các phím để so sánh — Computes the intersection of arrays using keys for comparison
Sự mô tả
mảng_intersect_key [mảng $array
, mảng ...$arrays
]: mảng[array $array
, array ...$arrays
]: array
Thông số
array
Mảng với các phím chính để kiểm tra.
arrays
Mảng để so sánh các khóa với.
Trả về giá trị
Trả về một mảng kết hợp chứa tất cả các mục của array
có các khóa có mặt trong tất cả các đối số.
Thay đổi
8.0.0 | mảng_intersect_key [mảng $array , mảng ...$arrays ]: mảng |
Thông số
array
array_intersect_key[] example
Mảng với các phím chính để kiểm tra.
array[2] { ["blue"]=> int[1] ["green"]=> int[3] }
arrays
Mảng để so sánh các khóa với.
Trả về giá trị
- Trả về một mảng kết hợp chứa tất cả các mục của
array
có các khóa có mặt trong tất cả các đối số. - Thay đổi
- Phiên bản
- Hàm này bây giờ có thể được gọi chỉ với một tham số. Trước đây, ít nhất hai tham số đã được yêu cầu.
- Ví dụ
- Ví dụ #1 mảng_intersect_key [] Ví dụ
- Ví dụ trên sẽ xuất ra:
- Trong ví dụ của chúng tôi, bạn thấy rằng chỉ có các khóa
'blue'
và
0 có mặt trong cả hai mảng và do đó được trả lại. Cũng lưu ý rằng các giá trị cho các khóa'blue'
và
0 khác nhau giữa hai mảng. Một trận đấu vẫn xảy ra vì chỉ có các phím được kiểm tra. Các giá trị được trả về là các giá trị củaarray
. - Hai khóa từ các cặp
4 chỉ được coi là bằng nhau nếu
5. Nói cách khác, một kiểm tra loại nghiêm ngặt được thực thi để biểu diễn chuỗi phải giống nhau. - Xem thêm
- Array_diff [] - Tính toán sự khác biệt của mảng
- Array_udiff [] - Tính toán sự khác biệt của mảng bằng cách sử dụng hàm gọi lại để so sánh dữ liệu
Array_Diff_assoc [] - Tính toán chênh lệch của mảng với kiểm tra chỉ mục bổ sung ¶
Array_Diff_Uassoc [] - Tính chênh lệch của mảng với kiểm tra chỉ mục bổ sung được thực hiện bởi chức năng gọi lại do người dùng cung cấp
6
7
8Array_udiff_assoc [] - Tính chênh lệch của mảng với kiểm tra chỉ mục bổ sung, so sánh dữ liệu bằng hàm gọi lại ¶
Array_udiff_uassoc [] - Tính toán chênh lệch của mảng với kiểm tra chỉ mục bổ sung, so sánh dữ liệu và chỉ mục bằng hàm gọi lại
9array[2] { ["blue"]=> int[1] ["green"]=> int[3] }0
array[2] { ["blue"]=> int[1] ["green"]=> int[3] }1
array[2] { ["blue"]=> int[1] ["green"]=> int[3] }2
array[2] { ["blue"]=> int[1] ["green"]=> int[3] }3
array[2] { ["blue"]=> int[1] ["green"]=> int[3] }4
8Array_Diff_Key [] - Tính toán sự khác biệt của các mảng sử dụng các phím để so sánh ¶
Array_Diff_ukey [] - Tính độ khác biệt của mảng bằng hàm gọi lại trên các phím để so sánh
array[2] { ["blue"]=> int[1] ["green"]=> int[3] }6
array[2] { ["blue"]=> int[1] ["green"]=> int[3] }7
array[2] { ["blue"]=> int[1] ["green"]=> int[3] }8
array[2] { ["blue"]=> int[1] ["green"]=> int[3] }9
$array
0Array_Intersect [] - Tính toán giao điểm của mảng ¶
Array_intersect_assoc [] - Tính toán giao điểm của các mảng bằng kiểm tra chỉ mục bổ sung
$array
1
$array
2
8Array_intersect_uassoc [] - Tính toán giao điểm của các mảng bằng kiểm tra chỉ mục bổ sung, so sánh các chỉ mục bằng hàm gọi lại ¶
Array_intersect_ukey [] - Tính toán giao điểm của các mảng bằng hàm gọi lại trên các phím để so sánh
$array
4
$array
5
array[2] { ["blue"]=> int[1] ["green"]=> int[3] }4
8vladas dot dirzys tại gmail dot com ¶ ¶
10 năm trước
$array
8
$array
9
...$arrays
0
8Ẩn danh ¶ ¶
1 năm trước
...$arrays
2
...$arrays
3
...$arrays
4
...$arrays
5github.com/xmarcos ¶ ¶
8 năm trước
...$arrays
6
...$arrays
7
...$arrays
8
8Sậy bạc ¶ ¶
7 năm trước
array
0
PGL tại Yoyo Dot org ¶ ¶
11 năm trước
array
1
array
2
array
3chrisbloom7 tại gmail dot com ¶ ¶
7 năm trước
array
4
array
5
array
6
8