<?php
$array = [
'Spain' => [
'Barcelona' => 2,
'Madrid' => 4,
'Mallorca' => 10,
],
'France' => [
'Paris' => 1,
'Monaco' => 3,
],
];
$output = [];
foreach ($array as $country => $cities_points) {
$count = count($cities_points);
// Sum all of the values
$sum = array_sum($cities_points);
// Keep track of each city
$items = [];
foreach ($cities_points as $city => $point) {
$items[] = sprintf('%1$s (%2$d)', $city, $point);
}
// Put it all together
$output[] = sprintf('%1$s (%2$dx|%3$d) - %4$s', $country, $count, $sum, implode(', ', $items));
}
echo implode(PHP_EOL, $output);
preferences:
24.66 ms | 406 KiB | 5 Q