I working now for a couple of hours on my project, i have some key's from a early array that i want to loop to my new array and pick the value of the key's that i have from the early array.
Early array:
$old_keys = ['key1','key2','key3'];
New array:
$result = ['key1' => 'foo', 'key2' => 'bar', 'key6' => 'ipsum'];
Output that i want is:
$output = ['foo', 'bar'];
This is what i made:
foreach ($old_keys as $old_key) {
    $output[] = array_column($result, $old_key);
}
return $output;
What did i wrong because everything what i get is a empty array
Thanks a lot!
Update:
$keys = array_flip($old_keys);
$output = array_values(array_intersect_key($result, $keys));
echo '<pre>';
var_dump($output);
The $output is now filled with the multidimensional array of $result, but the values 'foo' and 'bar' are in the second level of this multidimensional array. The problem is, i get only the first level of this array and not the second level.
example of the output:
[
 [0] => string
 [1] => string
 [
  [key1] => foo
  [key2] => bar
 ]
]
What i want is:
[
 [0] => string
 [1] => string
 [3] => foo
 [4] => bar
]
Solution:
$flat = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($result)), true);
