Conversione di array multidimensionali in PHP

Supponiamo di avere un elenco di utenti, memorizzato nella seguente struttura:

php<?php
  $users = [
    [
      'id' => 11,
      'name' => 'name11',
      'surname' => 'surname11',
    ],
    [
      'id' => 14,
      'name' => 'name14',
      'surname' => 'surname14',
    ],
    [
      'id' => 17,
      'name' => 'name17',
      'surname' => 'surname17',
    ],
  ];
?>

Scriviamo il codice che riformatterà il nostro array in questo modo:

php[
  11 => [
    'id' => 11,
    'name' => 'name11',
    'surname' => 'surname11',
  ],
  14 => [
    'id' => 14,
    'name' => 'name14',
    'surname' => 'surname14',
  ],
  17 => [
    'id' => 17,
    'name' => 'name17',
    'surname' => 'surname17',
  ],
]

Risolviamo il compito assegnato utilizzando un ciclo:

php<?php
  $res = [];
  
  foreach ($users as $user) {
    $res[$user['id']] = $user;
  }
  
  var_dump($res);
?>
Задание 1

Dato un elenco di città e dei loro paesi, memorizzato nella seguente struttura:

php[
  [
    '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',
  ],
]

Scrivi il codice che trasformerà la struttura dei dati in questa:

php[
  'country1'=> [
    'city1', 'city3', 'city4',
  ],
  'country2'=> [
    'city2', 'city6'
  ],
  'country3'=> [
    'city7', 'city5'
  ],
]
Задание 2

Dato un elenco di eventi per date specifiche, memorizzato nella seguente struttura:

php[
  [
    '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'
  ],
]

Scrivi il codice che trasformerà la struttura dei dati in questa:

php[
  '2019-12-29'=> ['name1', 'name3', 'name5', 'name7'],
  '2019-12-30'=> ['name4', 'name8', 'name9'],
  '2019-12-31'=> ['name2', 'name6'],
]
Задание 3

Dato un elenco di eventi per date specifiche, memorizzato nella seguente struttura:

php[
  '2019-12-29'=> ['name1', 'name2', 'name3', 'name4'],
  '2019-12-30'=> ['name5', 'name6', 'name7'],
  '2019-12-31'=> ['name8', 'name9'],
]

Scrivi il codice che trasformerà la struttura dei dati in questa:

php[
  [
    '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'
  ],
]