PHP - Obtener valor de un elemento de un array en PHP

 
Vista:
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Obtener valor de un elemento de un array en PHP

Publicado por Kathyu (905 intervenciones) el 03/10/2018 20:14:47
Buen día.

Les comento mi problema, quiero buscar en un array el valor de un indice y comprarlo para mostrar un determinado item de menú.

Tengo la consulta
1
2
3
4
5
6
7
8
9
<?php
    $privs = $mysqli->query("SELECT accion,privilegio FROM privilegio WHERE usuario='$id' ") or trigger_error($mysqli->error);
    while($row = $privs->fetch_array(MYSQLI_ASSOC)){
        $index[] = $row['accion'];
        $value[] = $row['privilegio'];
    }
    $xps = array_combine($index, $value);
    print_r($xps);
?>

El array $index tienen todas las acciones (1,2,3...) y el array $value tiene el privilegio para cada acción (0,1,1...)

Lo que necesito es, verificar si por ejemplo, el indice (o acción) 59 tiene privilegio 0 o 1, dependiendo del caso entonces muestro algo o no.

He probado de muchas maneras, in_array, array_search, con un foreach y con varios otros métodos pero no logro hacer lo que quiero, tienen alguna idea de como puedo solventar esto??

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Obtener valor de un elemento de un array en PHP

Publicado por Yamil Bracho (888 intervenciones) el 03/10/2018 20:24:38
Usa un arreglo asociativo. Por ejemplo :

1
2
3
4
5
6
7
8
<?php
$privs = $mysqli->query("SELECT accion,privilegio FROM privilegio WHERE usuario='$id' ") or trigger_error($mysqli->error);
$xps = []
while($row = $privs->fetch_array(MYSQLI_ASSOC)){
	$xps [] = array($row['accion'] => $row['privilegio'])
}
print_r($xps);
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Obtener valor de un elemento de un array en PHP

Publicado por Kathyu (905 intervenciones) el 03/10/2018 21:59:49
Gracias por su respuesta, había visto tambien lo de los arrays asociativos, mi único problema es que no se me ocurre como comparar el valor de un determinado elemento de un array.

Ejemplo del menú.
1
2
3
Agregar
Actualizar
Eliminar

Para cada elemento quiero evaluar si, dentro del array de los privilegios del usuario esta en 1 (o activada) la opción para ver ese ítem y poder accesar a el, igual en la pagina destino valido el privilegio correspondiente.

Pseudocodigo
1
2
3
4
5
6
7
8
9
10
11
<?php
if ($xps[1] = 1){
   Agregar
}
if ($xps[2] = 1){
   Actualizar
}
if ($xps[3] = 1){
   Eliminar
}
?>

Obviamente si dentro del array de los privilegios del usuario ($xps) la opción 3 (eliminar) no esta activada o en 1, al usuario ni siquiera se le va a mostrar la opción Eliminar en el menú.

No se si di a entender mejor mi duda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Obtener valor de un elemento de un array en PHP

Publicado por Yamil Bracho (888 intervenciones) el 03/10/2018 23:31:30
Si ya creaste el arreglo asociativo tendrias algo como
1 => 1
2 => 1
3 => 0
...
99 => 1

Ahora lo que quieres es ver como asociar esto con el menu ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Obtener valor de un elemento de un array en PHP

Publicado por Kathyu (905 intervenciones) el 04/10/2018 15:46:13
Exacto Yamil
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Javier (orzo) Rodríguez
Val: 85
Ha disminuido su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Obtener valor de un elemento de un array en PHP

Publicado por Javier (orzo) Rodríguez (25 intervenciones) el 04/10/2018 13:20:56
Hola, Kathyu.
¿ No sería mejor modificar la sentencia SQL por
SELECT accion,privilegio FROM privilegio WHERE usuario='$id' AND privilegio=1 ?
Esto de devolvería un array con todas las opciones de menú que ese usuario puede utilizar.
Evidentemente, depende de cómo tengas estructurado el proceso de muestreo de las opciones pero, suponiendo que tienes un proceso aparte donde asignas/desasignas las opciones a un usuario dado, con esta sentencia cargarías sólo las activas y te limitarías a mostrarlas todas.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Obtener valor de un elemento de un array en PHP

Publicado por Kathyu (905 intervenciones) el 04/10/2018 16:04:10
Es una idea fabulosa, la implementé y resulto !!!!!!!!!

Pseudocodigo
1
2
3
4
5
6
7
8
9
10
11
12
13
<ul>
   <?php if (in_array(51,$xps)) {
   <li>
        Agregar
   </li>
    } ?>
   <li>
        Editar
   </li>
   <li>
        Eliminar
   </li>
</ul>

Realmente por ahí iba el asunto, lo probé con varios usuarios y el menú se comporta perfecto.

Agradezco mucho a todos los que se tomaron su tiempo en ayudar, haré lo mismo con otros usuarios y haremos mas grande LWDP
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar