Задача про табельные номера

Присказка

Жил да был операционный отдел в одной компании, которая занималась обслуживанием клиентов. И вот однажды назаказывал один крупный клиент услуг видимо-невидимо. А потом и затребовал к сроку отчёт ручной работы, да такой, чтобы по каждому сотруднику был заполнен табельный номер. Закручинился отдел, приуныл - никто эти табельные номера видом не видывал, слыхом не слыхивал, только фамилии с именем и вносили.

Дано

Список услуг по сотрудникам ( А ):

Сотрудник Услуга
Иванов Иван Проживание
Пётр Петров Авиабилет
Пётр Сергеевич Петров Кафе
Сидр Сидоров Такси

Список табельных номеров ( В ):

Табельный номер Сотрудник
И100 Иванов Иван Иванович
И101 Пётр Петров Петрович
И102 Петр Петров Сергеевич
И103 Сидоров Сидр Сидорович

Задача

Сопоставить список А со списком В таким образом, чтобы однозначно привязать табельный номер к сотруднику. Результатом работы должна быть таблица следующего вида:

Табельный номер Сотрудник Услуга
И100 Иванов Иван Проживание
Пётр Петров Авиабилет
И102 Пётр Сергеевич Кафе
И103 Сидр Сидоров Такси

PHP-код

<?php

$numbers = [
    ['И100', 'Иванов Иван Иванович'],
    ['И101', 'Пётр Петров Петрович'],
    ['И102', 'Петр Петров Сергеевич'],
    ['И103', 'Сидоров Сидр Сидорович'],
];

$orders = [
    ['Иванов Иван', 'Проживание'],
    ['Пётр Петров', 'Авиабилет'],
    ['Пётр Сергеевич', 'Кафе'],
    ['Сидр Сидоров', 'Такси'],
];

$matchNumber = function($name) {
    // Поиск и возврат табельного номера по имени
};

foreach($orders as [$name, $description]) {
  echo join("\t", [$matchNumber($name), $name, $description]), "\n";
}

Правильный результат работы:

И100    Иванов Иван     Проживание
        Пётр Петров     Авиабилет
И102    Пётр Сергеевич  Кафе
И103    Сидр Сидоров    Такси

Хорошая задача, мне понравилась. Оставлю отзыв!