He simplificado la función, marca bien los que debe marcar, pero siempre manda un array más.
Código:
function marcatodos(ide) {
tags_inpt=document.getElementsByTagName('input');
for (i=0; i<tags_inpt.length; i++) {
if ((tags_inpt[i].type=='checkbox')&&(tags_inpt[i].id==ide)){
tags_inpt[i].checked = 1;
}
}
}
En este caso seleccioné 2 y recibí esto:
Array ( [2] => modifica [3] => modifica [4] => modifica ) Array ( [2] => modifica [3] => modifica [4] => modifica ) Array ( [2] => modifica [3] => modifica [4] => modifica )