Código PHP:
$int = 50019000;
// array(0=>5, 1=>0,2=>0,3=>1,4=>9 ...
| ||||
Respuesta: Convertir entero en array si rula gracias, Por que no funciona el print_r con esto (K)?, quiero hacerlo array completo y me retorne el count() = 9
__________________ /* El que atiende, entiende..., el que entiende, aprende!. Desarrollo Web Freelance, Contactar */ |
| ||||
Respuesta: Convertir entero en array |
| ||||
Respuesta: Convertir entero en array Hola, como lo dije antes quiero convertirlo en array completo, Gator si que me aparece el array sabrías cual es el caracter vacío "nada" para usar explode()?. En realidad lo que quiero conseguir, la tabla usuarios en una DB tiene la columna user_options INT(11) default (91100110111) si el primer número es 1, el modulo A está activo, 0 de lo contrario. Son 10 módulos si el valor es 91111111111 obviamente todos los módulos estarán activos. El número 9 es para validar el int por si un 0 está al inicio. Antes usaba la columna con varchar y los valores entre guiones 1-0-1-0-0... y el array lo tomaba separando el guión con "explode()" pero buscaba otra manera para ahorrar memoria en la DB y se me ocurrio el int. Por eso también busco una manera de separar en array de una manera simple ![]()
__________________ /* El que atiende, entiende..., el que entiende, aprende!. Desarrollo Web Freelance, Contactar */ |
| ||||
Respuesta: Convertir entero en array Para eso te conviene mejor usar operadores bitwise, si cada modulo es un bit, por ejemplo:
Código:
Luego puedes hacer operaciones, supongamos que quieres darle acceso al usuario a todos los modulos, entonces sus permisos son de 31, entonces puedes hacer comparaciones bit a bit:1 = Modulo Admin 2 = Modulo X 4 = Modulo Y 8 = Modulo Z 16 = Modulo V
Código:
Si sus permisos son de 7 por ejemplo, puedes entrar a los modulos de X y Y, si solo son de 16 por ejemplo solo es el modulo V.if ((permisos & 1) == 1) { // tiene acceso al modulo admin } Si quieres buscar más info en el foro deje un tutorial hace mucho en un post, o en Google puedes ver comparaciones bit a bit. Saludos. |
| ||||
Respuesta: Convertir entero en array Cita: Lo del bit no entendido un poco, pero como calcular los permisos ? en un futuro quiero agregar más módulos serviría este método?, que tipo de columna va en la tabla mysql? Gracias de nuevo.
Iniciado por GatorV ![]() Para eso te conviene mejor usar operadores bitwise, si cada modulo es un bit, por ejemplo:
Código:
Luego puedes hacer operaciones, supongamos que quieres darle acceso al usuario a todos los modulos, entonces sus permisos son de 31, entonces puedes hacer comparaciones bit a bit:1 = Modulo Admin 2 = Modulo X 4 = Modulo Y 8 = Modulo Z 16 = Modulo V
Código:
Si sus permisos son de 7 por ejemplo, puedes entrar a los modulos de X y Y, si solo son de 16 por ejemplo solo es el modulo V.if ((permisos & 1) == 1) { // tiene acceso al modulo admin } Si quieres buscar más info en el foro deje un tutorial hace mucho en un post, o en Google puedes ver comparaciones bit a bit. Saludos.
__________________ /* El que atiende, entiende..., el que entiende, aprende!. Desarrollo Web Freelance, Contactar */ |
| ||||
Respuesta: Convertir entero en array El tipo de campo en MySQL es un entero, un numero y si te sirve para "n" modulos solo ve incrementando el valor de tu modulo, para que sea un bit, si ves la forma va de 1, 2, 4, 8, 16, 32, 64, etc. Saludos. |