Hola puede que si funcione lo que usas pero hay cosas que no necesitas, recuerda no repetir lo mismo , esto es un solo Ciclo.
En el mismo cilo pudes usarlo para las demás variables que mandes solo asignas la posicion del arreglo.
Código PHP:
Ver original/*
1.- Si le mandas estos inputs
type="checked" value="1" name="datos_check_box[]" checked
type="checked" value="2" name="datos_check_box[]" --
type="checked" value="3" name="datos_check_box[]" checked
type="checked" value="4" name="datos_check_box[]" checked
type="checked" value="5" name="datos_check_box[]" checked
type="checked" value="6" name="datos_check_box[]" --
2.- Solo recibe los que tienen ckecked entonces son solo 4 capturados,
si esos 4 capturados cuentan con algun valor en especifico es decir un IDENTIFICADOR se lo asignas al value.
entonces mandas los mismos id con otro input, este puede estar oculto
type="hidden" value="1" name="permisos_id[]"
type="hidden" value="2" name="permisos_id[]"
type="hidden" value="3" name="permisos_id[]"
type="hidden" value="4" name="permisos_id[]"
type="hidden" value="5" name="permisos_id[]"
type="hidden" value="6" name="permisos_id[]"
3.- entonces solo queda recorrer todos los campos hidden como si todos hubieran sido seleccionados (checked's)
*/
$arreglo_checked = $_GET['datos_check_box'];
$arreglo_permisos = $_GET['permisos_id'];
$cadena_permisos = "";
foreach ($arreglo_permisos as $posicion => $permisos_id) {
if(!in_array($permisos_id,$arreglo_checked)) { continue; }
$cadena_permisos.="|$permisos_id";
}
$id_usuario = $nombre = $estatus = 0;
$sql_permisos =" INSERT INTO usuarios SET id_usuario='$id_usuario',
usuario='$nombre',
estatus='$estatus',
cadenas='$cadena_permisos'";
mysql_query($sql_permisos) or
die("No se pudo Insertar [$sql_permisos]");
Ultima cosa, las variables usa nombre mas abstractos de lo contrario el día de mañana te dolerá la cabeza tratando de "entender algo que no deberías de buscar"
Saludos!