Склонение числительных, что я делаю не так?
То, что сразу бросается в глаза
вместо } elseif (in_array($y, array("2,3,4"))) {
нужно  } elseif (in_array($y, array(2,3,4))) {
function num2word($num, $words)
{
    $num = $num % 100;
    if ($num > 19) {
        $num = $num % 10;
    }
    switch ($num) {
        case 1: {
            return($words[0]);
        }
        case 2: case 3: case 4: {
            return($words[1]);
        }
        default: {
            return($words[2]);
        }
    }
}

echo num2word(50, array('год', 'года', 'лет'));