Goals
Turn PHP multi-dimensional array into one dimensional array (Flatten).
Solution
We will use Standard PHP Library (SPL) to tackle the problem. Assume we have an array like below.
$origin = [
'Level 1',
'_2_' => [
'Level 2',
'_3_' => [
'Level 3',
'_4_' => [
'Level 4',
'_5_' => [
'Level 5'
]
]
]
],
'Another Level 1',
'_2_1' => [
'Another Level 2'
]
];
Turn it into one dimensional array by using SPL RecursiveIteratorIterator and RecursiveArrayIterator class.
$flat = [];
foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($origin)) as $leaf) {
$flat[] = $leaf;
}
print_r($flat);
We should get flattened array.
Array
(
[0] => Level 1
[1] => Level 2
[2] => Level 3
[3] => Level 4
[4] => Level 5
[5] => Another Level 1
[6] => Another Level 2
)
0 comments:
Post a Comment