Hướng dẫn php array group by two keys - nhóm mảng php bằng hai phím

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] =>
                        ]

                ]

        ]

]

array_group_by

[Php 5> = 5,4] 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 đó.

Làm thế nào để kết hợp 2 mảng trong PHP?

Hàm php mảng_merge []..
Hợp nhất hai mảng thành một mảng: $ a1 = mảng ["màu đỏ", "màu xanh lá cây"]; $ a2 = mảng ["màu xanh", "vàng"]; ....
Hợp nhất hai mảng kết hợp thành một mảng: $ a1 = mảng ["a" => "red", "b" => "màu xanh lá cây"]; $ a2 = mảng ["c" => "blue", "b" => "màu vàng"]; ....
Chỉ sử dụng một tham số mảng có các phím số nguyên: $ a = mảng [3 => "màu đỏ", 4 => "màu xanh lá cây"] ;.

Array_ kết hợp trong PHP là gì?

Định nghĩa và cách sử dụng. Hàm mảng_combine [] tạo ra một mảng bằng cách sử dụng các phần tử từ một mảng "khóa" và một mảng "giá trị". Lưu ý: Cả hai mảng phải có số lượng phần tử bằng nhau!creates an array by using the elements from one "keys" array and one "values" array. Note: Both arrays must have equal number of elements!

Điều gì sẽ xảy ra nếu yếu tố chính trong mảng kết hợp được lặp lại hai lần?

Không, bạn không thể có bội số của cùng một khóa trong một mảng kết hợp.Tuy nhiên, bạn có thể có các khóa duy nhất mà mỗi giá trị tương ứng là mảng và các mảng đó có nhiều phần tử cho mỗi khóa.Lưu câu trả lời này.you cannot have multiple of the same key in an associative array. You could, however, have unique keys each of whose corresponding values are arrays, and those arrays have multiple elements for each key. Save this answer.

Chức năng nào sẽ tạo ra một mảng kết hợp mới bằng cách lấy các khóa từ một mảng và giá trị từ một mảng khác?

Hàm mảng [] ở đây được sử dụng để tạo mảng kết hợp.array[] function is used to create associative array.

Bài Viết Liên Quan

Chủ Đề