- print_r: documentation ( source)
- array_walk_recursive: documentation ( source)
<?php
class Info {
public function __construct(public int $count) {}
}
$ballsToDolls = [1 => [11 => new Info(3), 22 => new Info(4)], 2 => [22 => new Info(5), 44 => new Info(6)]];
print_r($ballsToDolls);
$data = [];
foreach ($ballsToDolls as $ballId => $dolls) {
foreach ($dolls as $dollId => $info) {
$data[$ballId][$dollId] = ($data[$ballId][$dollId] ?? 0) + $info->count;
}
}
print_r($data);
$data = $ballsToDolls;
array_walk_recursive($data, static function(&$item, $key) {
$item = $item instanceof Info ? $item->count : $item;
});
print_r($data);