Bạn đang ở gần! Bạn chỉ cần thêm khóa thứ hai bạn muốn nhóm theo.
$byCategoryAndSale = [];
foreach [$inventory as $item] {
$byCategoryAndSale[$item['Category']][$item['OnSale']][] = $item;
}
Lưu ý bằng cách sử dụng giá trị boolean làm khóa mảng sẽ tương đương với 1 và 0 có thể trở nên khá khó hiểu. Using a boolean value as an array key will equate to 1's and 0's which can get pretty confusing.
Đây là một ví dụ đầy đủ:
Năng suất nào:
PS C:\> php test.php
[
[Toys] => Array
[
[0] => Array
[
[0] => Array
[
[Id] => 1
[Name] => Toy Car
[Category] => Toys
[Price] => 2.99
[OnSale] =>
]
[1] => Array
[
[Id] => 2
[Name] => Another Toy
[Category] => Toys
[Price] => 1.99
[OnSale] =>
]
]
[1] => Array
[
[0] => Array
[
[Id] => 4
[Name] => Last Toy
[Category] => Toys
[Price] => 50.99
[OnSale] => 1
]
]
]
[Not Toys] => Array
[
[0] => Array
[
[0] => Array
[
[Id] => 3
[Name] => Hamburger
[Category] => Not Toys
[Price] => 5.99
[OnSale] =>
]
]
]
]
[Php 5> = 5,4] array_group_by
array_group_by
- Nhóm một mảng bằng một khóa nhất định.
array_group_by
— Groups an array by a given key.Sự mô tả
array|null array_group_by[ array $array, mixed $key1 [, mixed $... ] ]
Nhóm một mảng thành các mảng bằng một $key
nhất định hoặc tập hợp các khóa, được chia sẻ giữa tất cả các thành viên mảng.
Dựa trên chức năng ____99 của Jake Zatecky.
Fork này cung cấp:
- Tham số
$key
có thể là một đóng cửa
Thông số
1 - Mảng để nhóm được thực hiện trên.$key
- Chìa khóa để nhóm hoặc tách bởi. Có thể là một chuỗi, một số nguyên, phao hoặc một cuộc gọi lại. Nếu khóa là null, phần tử lặp bị bỏ qua. Nếu khóa là một cuộc gọi lại, nó phải trả về một khóa hợp lệ từ mảng.
3
4-Các khóa bổ sung để nhóm bộ các khớp con tiếp theo.
Trả về giá trị
Trả về một mảng đa chiều, với mỗi chiều chứa các phần tử được nhóm theo [các] phím được truyền.
Errors/Exceptions
Nếu $key
không phải là một trong những loại được chấp nhận
6 sẽ bị ném và
7 được trả về.Ví dụ
Ví dụ #1 mảng_group_by [] ví dụ
$records = [ [ "state" => "IN", "city" => "Indianapolis", "object" => "School bus" ], [ "state" => "IN", "city" => "Indianapolis", "object" => "Manhole" ], [ "state" => "IN", "city" => "Plainfield", "object" => "Basketball" ], [ "state" => "CA", "city" => "San Diego", "object" => "Light bulb" ], [ "state" => "CA", "city" => "Mountain View", "object" => "Space pen" ] ]; $grouped = array_group_by[ $records, "state", "city" ];
Ví dụ trên sẽ xuất ra:
Array
[
[IN] => Array
[
[Indianapolis] => Array
[
[0] => Array
[
[state] => IN
[city] => Indianapolis
[object] => School bus
]
[1] => Array
[
[state] => IN
[city] => Indianapolis
[object] => Manhole
]
]
[Plainfield] => Array
[
[0] => Array
[
[state] => IN
[city] => Plainfield
[object] => Basketball
]
]
]
[CA] => Array
[
[San Diego] => Array
[
[0] => Array
[
[state] => CA
[city] => San Diego
[object] => Light bulb
]
]
[Mountain View] => Array
[
[0] => Array
[
[state] => CA
[city] => Mountain View
[object] => Space pen
]
]
]
]
Cài đặt
Với nhà soạn nhạc
$ composer require mcaskill/php-array-group-by
Không có nhà soạn nhạc
Tại sao bạn không sử dụng nhà soạn nhạc? Tải xuống
8 từ ý chính và lưu tệp vào đường dẫn dự án của bạn ở đâu đó.