Array dentro de ciclo Foreach PHP: ejemplo completo
Array dentro de ciclo Foreach PHP. A veces se requiere validar si existe un elemento de un ARRAY dentro de un ciclo While o ciclo foreach en PHP. Por lo tanto, podemos hacer uso de la función in_array() del lenguaje PHP.
Definición y uso de la función in_array()
La función in_array() busca en una matriz un valor específico.
Nota: Si el parámetro de búsqueda es una cadena y el parámetro de tipo se establece en VERDADERO, la búsqueda distingue entre mayúsculas y minúsculas.
La sintaxis:
in_array(search, array, type)
¿Como funciona in_array()?
Básicamente, la presente funciona hace el papel de la validar la existencia de un elemento dentro de un array existente. veamos un ejemplo
<?php $alumnos= array("Jaun", "Lucas", "Pedro", "Rolando"); if (in_array("Pedro", $alumnos)) { echo "Coincidencia encontrada"; } else { echo "Coincidencia no encontrada"; } ?>
¿Como aplicar la función in_array() dentro de un ciclo Foreach?
Ya vimos el uso de in_array() haciendo uso de una condicional IF ELSE y ahora explicaremos como funciona dentro de un bucle FOREACH. Por lo tanto, con esta implementación podemos verificar la existencia del elemento dentro del bucle.
Además, podemos devolver el resultado de verdadero o falso según el caso. Si el resultado es verdadero podemos agregar el precio del artículo a un total acumulado. Veamos el ejemplo
$price = 0; $result = false; $array = array(1533, 2343, 2333); foreach($order['items'] as $item){ if(in_array($item['Item'], $array)){ $result = true; $price += $item['Price']; } } if ($result) { echo 'Es verdadero'; } else { echo 'Es falso'; }
Técnicamente, ni siquiera necesita la variable $result
, ya que si $price es mayor que 0, entonces, por supuesto, era cierto, a menos que el precio del artículo fuera gratis ($0).
Mas sobre la función in_array()
<?php // 1) Primer ejemplo $os = array ("Mac", "NT", "Irix", "Linux"); if (in_array ("Irix", $os)) print "Encontrado Irix"; echo "<br><br>"; // 2) Segundo ejemplo if (in_array("mac", $os)) { echo "Encontrado mac"; } ?>
Explicación:
- El primer ejemplo el resultado será verdadero
- En nuestro segundo ejemplo la condición falla porque in_array() es CASE-SENSITIVE.
Conclusión
Aprendimos a validar la existencia de un elemento en un determinado array a través de la función in_array() del PHP. Además, lo hemos aplicado a un bucle Foreach según los requerimientos.
- Recordemos que la función in_array es CASE-SENSITIVE. Es decir, que detecta las palabras en mayúsculas y minúsculas, por ende, nos devolverá falso.
- Una recomendación es tener cuidado con las mayúsculas y minúsculas en nuestros registros ya que un pequeño fallo podría dar resultados inesperados.
- Espero haber despejado sus dudas sobre esta función del PHP