Array
(
[28.06.2024] => Array
(
[0] => Петров Петр Петрович
[1] => Петров Петр Петрович
)
[03.07.2024] => Array
(
[0] => Петров Петр Петрович
[1] => Иванов Иван Иванович
[2] => Петров Петр Петрович
[3] => Иванов Иван Иванович
)
[02.07.2024] => Array
(
[0] => Петров Петр Петрович
[1] => Иванов Иван Иванович
)
[01.07.2024] => Array
(
[0] => Иванов Иван Иванович
)
[22.06.2024] => Array
(
[0] => Петров Петр Петрович
)
[17.06.2024] => Array
(
[0] => Иванов Иван Иванович
)
[26.06.2024] => Array
(
[0] => Петров Петр Петрович
)
[05.07.2024] => Array
(
[0] => Петров Петр Петрович
)
[04.07.2024] => Array
(
[0] => Иванов Иван Иванович
)
)
<?php
$input = [
'28.06.2024' => ['Петров Петр Петрович', 'Петров Петр Петрович'],
'03.07.2024' => ['Петров Петр Петрович', 'Иванов Иван Иванович', 'Петров Петр Петрович', 'Иванов Иван Иванович'],
'02.07.2024' => ['Петров Петр Петрович', 'Иванов Иван Иванович'],
'01.07.2024' => ['Иванов Иван Иванович', 'Петров Петр Петрович', 'Иванов Иван Иванович'],
'26.06.2024' => ['Петров Петр Петрович', 'Петров Петр Петрович'],
'04.07.2024' => ['Иванов Иван Иванович']
];
$names = [];
foreach($input as $rows) {
foreach($rows as $name) {
$names[$name] = $name;
}
}
$names = array_values($names);
var_dump($names[0]);
var_dump($names[1]);
<?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;
}
}