Trong quá trình phát triển, lập trình viên cần thực hiện các vòng lặp để chuẩn bị mảng một chiều ra mảng nhiều chiều
Laravel cung cấp nhiều trình trợ giúp hữu ích theo nhiều cách và tiết kiệm công việc cho nhà phát triển
Một trong số đó là Arr::flatten[]
làm phẳng một mảng nhiều chiều thành một cấp độ theo mặc định
Đã thử nghiệm với Laravel phiên bản 5. 8, 6 và 7
Chúng tôi cần nhập không gian tên Illuminate\Support\Arr
với từ khóa use
Vui lòng kiểm tra phiên bản của bạn trên DOC chính thức để biết. Liên kết này sẽ đưa bạn đến Tài liệu Laravel 7
Trong khi duyệt MooTools 1. 2, tôi đã tìm thấy phương thức flatten[]
của Array. Phương thức flatten[]
lấy các mảng lồng nhau và "làm phẳng" tất cả chúng thành một mảng. Tôi đã tự hỏi làm thế nào tôi có thể làm điều đó bằng cách sử dụng PHP. Sau đây là những gì tôi nghĩ ra
PHP
$myarray = array['a', 'b', array[array[array['x'], 'y', 'z']], array[array['p']]]; function array_flatten[$array,$return] { for[$x = 0; $x a [1] => b [2] => x [3] => y [4] => z [5] => p ]
Như bạn có thể thấy, array_flatten[]
được sử dụng đệ quy để tìm ra các giá trị từ mảng ban đầu. Mặc dù tôi không tin rằng mình đã từng thấy mình có một mảng được lồng vào nhau như ví dụ của mình, nhưng thật tốt khi biết rằng tôi có thể trích xuất các giá trị nếu cần
________số 8
$records = array[
array[
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
'company_id' => 1,
],
array[
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
'company_id' => 1,
],
array[
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
'company_id' => 1,
],
array[
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
'company_id' => 2,
]
];
Array [ [0] => a [1] => b [2] => x [3] => y [4] => z [5] => p ]0
Array [ [0] => a [1] => b [2] => x [3] => y [4] => z [5] => p ]1
Array [ [0] => a [1] => b [2] => x [3] => y [4] => z [5] => p ]2
Array [ [0] => a [1] => b [2] => x [3] => y [4] => z [5] => p ]3
Array [ [0] => a [1] => b [2] => x [3] => y [4] => z [5] => p ]4
Array [ [0] => a [1] => b [2] => x [3] => y [4] => z [5] => p ]5
Array [ [0] => a [1] => b [2] => x [3] => y [4] => z [5] => p ]6
Array [ [0] => a [1] => b [2] => x [3] => y [4] => z [5] => p ]7
$records = array[
0
array[
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
'company_id' => 1,
],
array[
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
'company_id' => 1,
],
array[
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
'company_id' => 1,
],
array[
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
'company_id' => 2,
]
];
Array [ [0] => a [1] => b [2] => x [3] => y [4] => z [5] => p ]9
Arr::flatten[]
0
Arr::flatten[]
1
Arr::flatten[]
2
Arr::flatten[]
3