Hola. Me parece que estas mezclando las cosas.
El primer codigo incluye getElementById asi que si bien dice PHP corre en cliente debe ser javascript (?).
si params es un Array javascript , no puedes usar strings como key (indices).
miarray["texto"] no es valido. (en realidad deberia correr pero asignara un nuevo miembro al objeto array, que no es la idea).
Como dice maycol, el $ como nombre de variable en js es no es obligatorio
Para identificar la cantidad de filas, podrias enviar el dato directamente desde el server si es una tabla estatica o memorizarlo en js si es una tabla dinamica.
Entonces quedaria :
Cita: var paramsN = new Array();
var paramsV = new Array();
var cNombre,cValor;
for(var i=1;i<$filas;i++){
cNombre="#perfil_" + i;
cValor="#check_" + i;
paramsN[i] = $(cNombre).val();
paramsV[i] = $(cValor).attr('checked');
}
alert(params);
Todavia debes programar en js para enviar el array al server porque no pasa directamente.
Pero intuyo que lograrias lo que deseas si simlpemente metes los campos en un form y lo envias al server con submit. (o usas AJAX)
Saludos