PHP Equi Leader
function equiLeader(array $a): int
{
    $leaderSize = $value = $leaderCount = 0;
    foreach ($a as $k => $v) {
        if ($leaderSize === 0) {
            $leaderSize++;
            $value = $v;
        } elseif ($value !== $v) {
            $leaderSize--;
        } else {
            $leaderSize++;
        }
    }
    $candidate = $leaderSize > 0 ? $value : -1;

    foreach ($a as $v) {
        if ($v === $candidate) {
            $leaderCount++;
        }
    }
    $leader = -1;
    if ($leaderCount > count($a) / 2) {
        $leader = $candidate;
    }

    $count        = count($a);
    $lLeaderCount = $equiLeaders = 0;

    foreach ($a as $k => $v) {
        $leftHalf  = (int)(($k + 1) / 2);
        $rightHalf = (int)(($count - $k - 1) / 2);
        if ($v === $leader) {
            $lLeaderCount++;
        }

        $rLeaderCount = $leaderCount - $lLeaderCount;
        if ($lLeaderCount > $leftHalf && $rLeaderCount > $rightHalf) {
            $equiLeaders++;
        }

    }

    return $equiLeaders;
}

This keeps leader counts on both sides of the split and counts positions where the same leader survives in each half.