0

I have this simple array:

[
    'key1' => 'value',
    'key2' => 'value',
    'key3' => [
        'u-key1' => 'value',
        'u-key2' => 'value'
    ]
]

I want to flatten it into this form:

[
    'key1' => 'value',
    'key2' => 'value',
    'u-key1' => 'value',
    'u-key2' => 'value'
]

I'm sure there's a simple way of doing it with Collection/Arr helpers in Laravel, but can't figure it out.

Ouss
  • 2,912
  • 2
  • 25
  • 45
rock3t
  • 2,193
  • 2
  • 19
  • 24

2 Answers2

0

try like this one: your array:

$arr= [
    'key1' => 'value',
    'key2' => 'value',
    'key3' => [
         'u-key1' => 'value',
         'u-key2' => 'value'
     ]
]

your function :

$data = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr));
foreach($data as $index=> $d) {
   $r[$index]=$d;
}
 print_r($r);

for more details go here https://www.php.net/manual/en/function.array-column.php

Zia Yamin
  • 942
  • 2
  • 10
  • 34
0

Try this

$data = [
    'key1' => 'value',
    'key2' => 'value',
    'key3' => [
        'u-key1' => 'value',
        'u-key2' => 'value'
    ]
];

$array = new RecursiveIteratorIterator(new RecursiveArrayIterator($data));

foreach ($array as $key => $value) {
  $result[$key] = $value;
}

print_r($result);

OUTPUT :

Array
(
    [key1] => value
    [key2] => value
    [u-key1] => value
    [u-key2] => value
)

Your question's answer DEMO below

https://paiza.io/projects/F7G_b_S_skT916OeBrl2xw

VIKAS KATARIYA
  • 5,867
  • 3
  • 17
  • 34