<?php
$dates = [
'28.06.2024',
'29.06.2024',
'30.06.2024',
'01.07.2024',
'02.07.2024',
'03.07.2024',
'04.07.2024'
];
$names = [
'28.06.2024' => ['Петров Петр Петрович', 'Петров Петр Петрович'],
'03.07.2024' => ['Петров Петр Петрович', 'Иванов Иван Иванович', 'Петров Петр Петрович', 'Иванов Иван Иванович'],
'02.07.2024' => ['Петров Петр Петрович', 'Иванов Иван Иванович'],
'01.07.2024' => ['Иванов Иван Иванович', 'Петров Петр Петрович', 'Иванов Иван Иванович'],
'26.06.2024' => ['Петров Петр Петрович', 'Петров Петр Петрович'],
'04.07.2024' => ['Иванов Иван Иванович']
];
$strangeTask = new StrangeTask($names);
$allNames = $strangeTask->getNames();
foreach ($dates as $date) {
foreach ($allNames as $name) {
echo $strangeTask->getNameOnDate($date, $name);
}
}
class StrangeTask
{
public function __construct(public array $names)
{
}
public function getNameOnDate(string $date, string $name): ?string
{
if (!isset($this->names[$date])) {
return null;
}
return in_array($name, $this->names[$date]) ? $name : null;
}
public function getNames(): array
{
$names = [];
array_walk_recursive($this->names, function ($v) use (&$names) {
$names[$v] = $v;
});
return $names;
}
}