I have this array…
JavaScript
x
[
[
[
"name" => "Initials"
"value" => "ROR"
],
[
"name" => "Awards"
"value" => "Swimming"
],
],
[
[
"name" => "Initials"
"value" => "NAL"
],
[
"name" => "Awards"
"value" => "Cycling"
],
]
]
What’s the best way for me to change this array so I can save it like this…
JavaScript
[
[
"Initials" => "ROR"
"Awards" => "Swimming"
],
[
"Initials" => "NAL"
"Awards" => "Cycling"
],
]
I’ve started doing something like looping through them and this… but this gives me one array element per new array.
JavaScript
foreach($array as $rows) {
foreach($rows as $field) {
$values[] = [$field['name'] => $field['value']];
}
}
Advertisement
Answer
You can use array_column()
to index the inner array, specifying the column to use as the value and the one to index it by…
JavaScript
$values = [];
foreach($array as $rows) {
$values[] = array_column($rows, "value", "name");
}
print_r($values);
gives…
JavaScript
Array
(
[0] => Array
(
[Initials] => ROR
[Awards] => Swimming
)
[1] => Array
(
[Initials] => NAL
[Awards] => Cycling
)
)