Es correcto que te devuelva '2' si le pedís que te cuente la cantidad de veces que aparece la cadena "1".
Una de la opciones es que troces el string hacia un array usando expresiones regulares y luego cuentes las apariciones de cierto valor:
Código PHP:
<?php
$txt = '1, 16, 23, 32';
$numeros = preg_split('/\D+/', $txt);
print_r($numeros);
$valores = array_count_values($numeros);
print_r($valores);
$eluno = $valores[1];
?>