У меня есть два массива, и я пытаюсь получить счетчик для кандидатов, которые появляются в обоих массивах для каждого event_id. Это то, что я пробовал.
$temp = array();
foreach ( $events as $event)
{
foreach ( $users as $user )
{
if ( $event['event_id'] == $user['event_id'] )
{
$temp [$event['event_id']] = 0;
if ( $event['user_id'] == $user['user_id'] )
{
$temp [$event['event_id']]++;
}
}
}
}
Это то, что я получаю. Все равно 0, хотя есть пользователи, которые появляются на обоих массивах для одного и того же event_id.
array (size=15)
384 => int 0
395 => int 0
392 => int 0
404 => int 0
406 => int 0
313 => int 0
315 => int 0
322 => int 0
326 => int 0
327 => int 0
334 => int 0
717 => int 0
344 => int 0
378 => int 0
403 => int 0
Вы возвращаете $temp [$event['event_id']]
на 0 на каждой итерации, в которой event_id
соответствует в обоих массивах.
Вам нужно установить $temp [$event['event_id']]
на 0 только один раз. Например:
$temp = array();
foreach ( $events as $event)
{
$temp [$event['event_id']] = 0;
foreach ( $users as $user )
{
if ( $event['event_id'] == $user['event_id'] && $event['user_id'] == $user['user_id'] )
{
$temp [$event['event_id']]++;
}
}
}
$temp [$event['event_id']] = 0;
сразу после начала первого цикла