Đối với những người tìm kiếm php multidimensional array get values
và thực sự muốn giải quyết vấn đề đến từ việc lấy một giá trị cột từ một mảng 2 độ [như tôi!], Đây là một cách thanh lịch nhiều so với sử dụng foreach
, đó là array_column
Ví dụ: nếu tôi chỉ muốn nhận hotel_name
từ mảng bên dưới và hình thành một mảng khác:
$hotels = [
[
'hotel_name' => 'Hotel A',
'info' => 'Hotel A Info',
],
[
'hotel_name' => 'Hotel B',
'info' => 'Hotel B Info',
]
];
Tôi có thể làm điều này bằng cách sử dụng array_column
:
$hotel_name = array_column[$hotels, 'hotel_name'];
print_r[$hotel_name]; // Which will give me ['Hotel A', 'Hotel B']
Đối với câu trả lời thực tế cho câu hỏi này, nó cũng có thể được làm đẹp bởi array_column
và
$hotel_name = array_column[$hotels, 'hotel_name'];
print_r[$hotel_name]; // Which will give me ['Hotel A', 'Hotel B']
1Hãy tạo dữ liệu trong PHP:
$hotels = [
[
'hotel_name' => 'Hotel A',
'info' => 'Hotel A Info',
'rooms' => [
[
'room_name' => 'Luxury Room',
'bed' => 2,
'boards' => [
'board_id' => 1,
'price' => 200
]
],
[
'room_name' => 'Non Luxy Room',
'bed' => 4,
'boards' => [
'board_id' => 2,
'price' => 150
]
],
]
],
[
'hotel_name' => 'Hotel B',
'info' => 'Hotel B Info',
'rooms' => [
[
'room_name' => 'Luxury Room',
'bed' => 2,
'boards' => [
'board_id' => 3,
'price' => 900
]
],
[
'room_name' => 'Non Luxy Room',
'bed' => 4,
'boards' => [
'board_id' => 4,
'price' => 300
]
],
]
]
];
Và đây là tính toán:
$rooms = array_column[$hotels, 'rooms'];
$rooms = call_user_func_array['array_merge', $rooms];
$boards = array_column[$rooms, 'boards'];
foreach[$boards as $board]{
$board_id = $board['board_id'];
$price = $board['price'];
echo "Board ID is: ".$board_id." and price is: ".$price . "
";
}
Điều này sẽ cho bạn kết quả sau:
Board ID is: 1 and price is: 200
Board ID is: 2 and price is: 150
Board ID is: 3 and price is: 900
Board ID is: 4 and price is: 300
Trong các trang trước, chúng tôi đã mô tả các mảng là một danh sách duy nhất các cặp khóa/giá trị.
Tuy nhiên, đôi khi bạn muốn lưu trữ các giá trị với nhiều hơn một khóa. Đối với điều này, chúng tôi có các mảng đa chiều.
PHP - Mảng đa chiều
Một mảng đa chiều là một mảng chứa một hoặc nhiều mảng.
PHP hỗ trợ các mảng đa chiều là hai, ba, bốn, năm hoặc nhiều cấp độ sâu. Tuy nhiên, các mảng sâu hơn ba cấp độ khó có thể quản lý đối với hầu hết mọi người.
Kích thước của một mảng cho biết số lượng chỉ số bạn cần để chọn một phần tử.
- Đối với một mảng hai chiều, bạn cần hai chỉ số để chọn một phần tử
- Đối với một mảng ba chiều, bạn cần ba chỉ số để chọn một phần tử
PHP - Mảng hai chiều
Một mảng hai chiều là một mảng mảng [một mảng ba chiều là một mảng mảng mảng].
Đầu tiên, hãy xem bảng sau:
Volvo | 22 | 18 |
xe BMW | 15 | 13 |
Saab | 5 | 2 |
Land Rover | 17 | 15 |
Chúng ta có thể lưu trữ dữ liệu từ bảng trên trong một mảng hai chiều, như thế này:
$ cars = mảng [& nbsp; mảng ["volvo", 22,18], & nbsp; mảng ["bmw", 15,13], & nbsp; mảng ["saab", 5,2], & nbsp; mảng ["đất đai [" đất Rover ", 17,15]];
array["Volvo",22,18],
array["BMW",15,13],
array["Saab",5,2],
array["Land Rover",17,15]
];
Bây giờ, mảng ô tô $ hai chiều chứa bốn mảng và nó có hai chỉ số: hàng và cột.
Để có quyền truy cập vào các yếu tố của mảng $ Cars, chúng ta phải trỏ đến hai chỉ số [hàng và cột]:
Thí dụ
Hãy tự mình thử »
Chúng ta cũng có thể đặt một vòng lặp
$hotel_name = array_column[$hotels, 'hotel_name'];
print_r[$hotel_name]; // Which will give me ['Hotel A', 'Hotel B']
2 bên trong một vòng $hotel_name = array_column[$hotels, 'hotel_name'];
print_r[$hotel_name]; // Which will give me ['Hotel A', 'Hotel B']
2 khác để có được các phần tử của mảng $ Cars [chúng ta vẫn phải trỏ đến hai chỉ số]:Thí dụ
Hãy tự mình thử »
Chúng ta cũng có thể đặt một vòng lặp $hotel_name = array_column[$hotels, 'hotel_name'];
print_r[$hotel_name]; // Which will give me ['Hotel A', 'Hotel B']
2 bên trong một vòng $hotel_name = array_column[$hotels, 'hotel_name'];
print_r[$hotel_name]; // Which will give me ['Hotel A', 'Hotel B']
2 khác để có được các phần tử của mảng $ Cars [chúng ta vẫn phải trỏ đến hai chỉ số]:
$hotel_name = array_column[$hotels, 'hotel_name'];
print_r[$hotel_name]; // Which will give me ['Hotel A', 'Hotel B']
$hotel_name = array_column[$hotels, 'hotel_name'];
print_r[$hotel_name]; // Which will give me ['Hotel A', 'Hotel B']
Hoàn thành tham chiếu mảng PHP
Để tham khảo đầy đủ tất cả các chức năng mảng, hãy truy cập tham chiếu mảng PHP hoàn chỉnh của chúng tôi.