PHP, необходимо создать функцию для подсчёта количество схожих значений в массивах

Даётся 2 массива:

$categories = [
        "Incoming" => "Входящие",
        "Study" => "Учёба",
        "Work"=> "Работа",
        "Home_Affairs" => "Домашние дела",
        "Auto" => "Авто"
];

$tasks =[
        [
               "task" => "Собеседование в IT компании",
               "date_create" => "01.12.2019",
                "category" => $categories["Work"],
                "create" => false
        ],
         [
               "task" => "Выполнить тестовое задание",
               "date_create" => "25.12.2019",
                "category" => $categories["Work"],
                "create" => false
        ],
         [
               "task" => "Сделать задание первого раздела",
               "date_create" => "21.12.2019",
                "category" => $categories["Study"],
                "create" => true
        ],
         [
               "task" => "Встреча с другом",
               "date_create" => "22.12.2019",
                "category" => $categories["Incoming"],
                "create" => false
        ],
         [
               "task" => "Купить корм для кота",
               "date_create" => null,
                "category" => $categories["Home_Affairs"],
                "create" => false
        ],
         [
               "task" => "Заказать пиццу",
               "date_create" => null,
                "category" => $categories["Home_Affairs"],
                "create" => false
        ]
];

Функция должна принимать два аргумента:

-список задач в виде массива (двумерный массив $tasks); -название проекта (значение в $categories);

результат: кол-во значений в $categories схожих со значениями из массива $tasks.

function count_tasks(array $tasks, array $categories): int
{
    $count = 0;
    foreach ($tasks as $task) {
        if (isset($task["category"])){
            $count += count($categories);
        } else {
            return 0;
        }
    }
    return $count;
}

У меня получается вывести сколько всего таких значений в обоих массивах /30


Ответы (1 шт):

Автор решения: Владислав Дмитриев

Необходимо в параметрах задавать строку а не массив с категориями (category), тогда всё заработало

→ Ссылка