Conversion of Multidimensional Arrays in PHP
Let's say we have a list of users stored in the following structure:
<?php
$users = [
[
'id' => 11,
'name' => 'name11',
'surname' => 'surname11',
],
[
'id' => 14,
'name' => 'name14',
'surname' => 'surname14',
],
[
'id' => 17,
'name' => 'name17',
'surname' => 'surname17',
],
];
?>
Let's write code that will reformat our array into this one:
[
11 => [
'id' => 11,
'name' => 'name11',
'surname' => 'surname11',
],
14 => [
'id' => 14,
'name' => 'name14',
'surname' => 'surname14',
],
17 => [
'id' => 17,
'name' => 'name17',
'surname' => 'surname17',
],
]
Let's solve the given task using a loop:
<?php
$res = [];
foreach ($users as $user) {
$res[$user['id']] = $user;
}
var_dump($res);
?>
Given a list of cities and their countries, stored in the following structure:
[
[
'country' => 'country1',
'city' => 'city1',
],
[
'country' => 'country2',
'city' => 'city2',
],
[
'country' => 'country1',
'city' => 'city3',
],
[
'country' => 'country1',
'city' => 'city4',
],
[
'country' => 'country3',
'city' => 'city5',
],
[
'country' => 'country2',
'city' => 'city6',
],
[
'country' => 'country3',
'city' => 'city7',
],
]
Write code that will convert the data structure into this one:
[
'country1'=> [
'city1', 'city3', 'city4',
],
'country2'=> [
'city2', 'city6'
],
'country3'=> [
'city7', 'city5'
],
]
Given a list of events for specific dates, stored in the following structure:
[
[
'date' => '2019-12-29',
'event' => 'name1'
],
[
'date' => '2019-12-31',
'event' => 'name2'
],
[
'date' => '2019-12-29',
'event' => 'name3'
],
[
'date' => '2019-12-30',
'event' => 'name4'
],
[
'date' => '2019-12-29',
'event' => 'name5'
],
[
'date' => '2019-12-31',
'event' => 'name6'
],
[
'date' => '2019-12-29',
'event' => 'name7'
],
[
'date' => '2019-12-30',
'event' => 'name8'
],
[
'date' => '2019-12-30',
'event' => 'name9'
],
]
Write code that will convert the data structure into this one:
[
'2019-12-29'=> ['name1', 'name3', 'name5', 'name7'],
'2019-12-30'=> ['name4', 'name8', 'name9'],
'2019-12-31'=> ['name2', 'name6'],
]
Given a list of events for specific dates, stored in the following structure:
[
'2019-12-29'=> ['name1', 'name2', 'name3', 'name4'],
'2019-12-30'=> ['name5', 'name6', 'name7'],
'2019-12-31'=> ['name8', 'name9'],
]
Write code that will convert the data structure into this one:
[
[
'date' => '2019-12-29',
'event' => 'name1'
],
[
'date' => '2019-12-29',
'event' => 'name2'
],
[
'date' => '2019-12-29',
'event' => 'name3'
],
[
'date' => '2019-12-29',
'event' => 'name4'
],
[
'date' => '2019-12-30',
'event' => 'name5'
],
[
'date' => '2019-12-30',
'event' => 'name6'
],
[
'date' => '2019-12-30',
'event' => 'name7'
],
[
'date' => '2019-12-31',
'event' => 'name8'
],
[
'date' => '2019-12-31',
'event' => 'name9'
],
]