During development, the developer needs to go through loops to prepare a single dimensional array out of a multi-dimensional array.
Laravel provides many helpers which come handy in multiple ways and saves developers work.
One of such is Arr::flatten()
which flattens a multi-dimensional array into a single level by default.
Tested with Laravel versions 5.8, 6 and 7.
We need to import Illuminate\Support\Arr
namespace with use
keyword.
Kindly check for your version on the official DOC for Laravel Helper Arr::flatten(). This link will take you to Laravel 7 Documentation.
Syntax
Arr::flatten(array $array, [int $depth = INF])
Parameters
\$array (necessary)
- The first parameter is necessary and must be an array that needs to be flattened.
- Laravel will extract elements and provides us with a new single dimension array based on the depth parameter.
\$depth (optional)
- The second parameter specifies the depth and it's an optional parameter.
- This value must be an integer type.
- The depth specifies how deep a nested array should be flattened.
- The default value for depth is infinity(
INF
) from which Laravel will extract elements and provides us with a new single dimension array.
Return value
It returns a new 1-D flattened array.
Example
$data = [ 'country' => 'India ๐ฎ๐ณ', 'languages' => [ 'Gujarati', 'Hindi', 'Sanskrit', 'Tamil', 'Urdu', ], ]; dd( Arr::flatten($data) );
Output
array:3 [ 0 => "India ๐ฎ๐ณ" 1 => "Gujarati" 2 => "Hindi" 3 => "Sanskrit" 4 => "Tamil" 5 => "Urdu" ]
Read the complete post on our site MeshWorld โ- โFlatten Array using Arr::flatten() in Laravel
Read others post on our site MeshWorld
Resources
- Laravel Arr flatten method documentation
Happy ๐ coding
With โค๏ธ from ๐ฎ๐ณ
Top comments (1)
I also like to use
array_merge(... $array)
when I need to preserve keys.