Uso de bucle foreach en PHP

Uso de bucle foreach en PHP
Se pueden usar diferentes tipos de bucles en PHP. El para cada el bucle es uno de ellos. Este bucle se usa principalmente para analizar variables de matriz y objeto. Cuando no se define el número total de iteraciones del bucle, es mejor usar un para cada bucle que otro bucle. El número de iteraciones de este bucle dependerá del número de elementos de matriz o el número de propiedades del objeto utilizado en el bucle para los valores de lectura. Cómo se puede usar este bucle para leer la matriz y las variables de objetos se ha mostrado en este tutorial.

Sintaxis:

El para cada El bucle se puede usar para leer solo los valores de la matriz o leer las claves y los valores de la matriz.

La siguiente para cada El bucle se usa para leer los valores de elementos de una matriz. Se puede usar para leer matrices numéricas y asociativas. Cada valor de elemento de la matriz se almacenará en una variable en cada iteración.

foreach ($ array como $ valor)
//declaraciones

La siguiente para cada El bucle se usa para leer los valores de elementos de una matriz. Se usa principalmente para leer matrices asociativas. En cada iteración del bucle, cada clave y valor de la matriz se almacenarán en dos variables.

foreach ($ array como $ key => $ elemento)
//declaraciones

Ejemplo-1: Leer una matriz numérica

El siguiente ejemplo muestra cómo leer la matriz numérica usando el para cada bucle. Cree un archivo PHP con el siguiente script. Una matriz numérica llamada $ num_array de 10 elementos ha sido declarado en el guión, y una matriz vacía llamada $ new_array ha sido declarado almacenar los números pares de la matriz numérica. El para cada El bucle se ha utilizado para iterar la matriz numérica, y la instrucción 'si' se ha utilizado para averiguar los números uniformes de la $ num_array y almacenado todos los números pares en el $ new_array. Otro para cada el bucle se ha utilizado para imprimir los valores de $ num_array.

// declarar una matriz numérica
$ num_array = array (12, 90, 15, 6, 32, 38, 75, 57, 60, 78);
// declarar una matriz vacía
$ new_array = array ();
// Inicializar el índice para la matriz vacía
$ index = 0;
echo "Los valores de la matriz son:
";
/ * Iterar la matriz numérica para averiguar los números divisibles por 5 y almacenar en una nueva matriz */
foreach ($ num_array as $ valor)
if ($ valor%5 == 0)

$ new_array [$ index] = $ valor;
$ índice ++;

Echo $ valor."";

eco "

La lista de números que son divisibles por 5:
";
// imprime los valores de la matriz $ new_array
foreach ($ new_array as $ valor)
Echo $ valor."";

?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor. La salida muestra que hay cuatro números par en la matriz numérica.

Ejemplo-2: Leer una matriz asociativa

El siguiente ejemplo muestra cómo leer una matriz asociativa y almacenar las claves particulares de la matriz a otra matriz usando un para cada bucle. Aquí, la matriz asociativa nombrada $ miembros contiene el nombre del miembro como clave y Presente o ausente como el valor de la matriz. Una matriz vacía llamada $ present_member se ha utilizado para almacenar los nombres de los miembros actuales. A continuación, el para cada el bucle se ha utilizado para imprimir los valores de $ present_member.

// declarar una matriz asociativa
$ miembros = array ('mehr nigar' => 'presente', 'ahmmed ali' => 'presente', 'maksudur rahman' => 'ausente', 'farzana akter' => 'presente', 'kamal hasan' = > 'Ausente');
// declarar una matriz vacía
$ present_members = array ();
// Inicializar el índice para la matriz
$ index = 0;
// Descubre la lista de miembros actuales
foreach ($ miembros como $ key => $ value)
if ($ value == 'presente')
$ present_members [$ index] = $ key;
$ índice ++;


// Cuenta los números totales de miembros actuales
$ count = count ($ presente_members);
eco "Los miembros de $ Count están presentes.

";
eco "Los miembros son:
";
// Imprima la lista de miembros actuales
foreach ($ present_members como $ valor)
Echo $ valor. "
";

?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor. La matriz asociativa contiene tres Presente valores y dos Ausente valores. Para esto, la salida muestra tres nombres del miembro del $ miembros Array que están presentes.

Ejemplo-3: Leer las propiedades de la variable de objeto


El siguiente ejemplo muestra cómo leer los nombres de las propiedades y los valores de cualquier objeto. Cree un archivo PHP con el siguiente script. Una clase llamada Cliente se ha definido en el guión que contiene tres propiedades públicas con valores. A continuación, el $ objeto Se ha creado variable para acceder a las propiedades de la clase. La variable del objeto se puede analizar como la matriz asociativa utilizando el bucle foreach. El para cada El bucle se ha utilizado aquí para leer el nombre de la propiedad y el valor de la propiedad de la variable de objeto, $ objeto. Cada nombre de propiedad y valor del $ objeto se leerá en cada iteración de bucle e se imprimirá en cada línea.

// Defina la clase con tres propiedades
Cliente de clase

public $ name = 'Mehnaz Hossain';
público $ correo electrónico = '[email protected] ';
public $ phone = '0184423675';

// Crear objeto de la clase
$ objeto = nuevo cliente ();
// Imprima las propiedades del objeto usando Foreach Loop
eco "

Los detalles del cliente:

";
foreach ($ objeto como $ propiedad => $ valor)

echo "$ propiedad = $ valor
";

?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor. El Cliente La clase contiene tres propiedades: nombre, correo electrónico y teléfono. Estas propiedades se inicializan con los valores dentro de la clase. Los nombres y valores de la propiedad se imprimen en la salida.

Ejemplo-4: Leer los valores de la matriz dinámica

Cree un archivo PHP con el siguiente script para conocer el uso del bucle foreach para leer el contenido de la matriz dinámica. En el siguiente script, se generará un número aleatorio entre 1 y 10 utilizando la función rand (). A continuación, la función Range () creará una matriz de números basado en el valor aleatorio, y el bucle foreach se usará para imprimir los valores de la matriz.

// Inicializar un número aleatorio
$ número = rand (1,10);
// Imprima los valores de matriz dinámica basados ​​en el valor aleatorio]
foreach (rango (0, $ número) como $ valor)

echo "$ valor \ n";

?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior.

Ejemplo-5: Leer los valores de la matriz numérica bidimensional

Cree un archivo PHP con el siguiente script para iterar los valores de la matriz numérica bidimensional utilizando el bucle foreach anidado. Se ha declarado una matriz bidimensional de 5 filas y 3 columnas en el script. El bucle de foreach exterior se ha utilizado para leer los valores de fila de la matriz, y el bucle de foreach interno se ha utilizado para leer los valores de la columna de la matriz. Aquí,

 La etiqueta se ha utilizado para mostrar la salida con el espacio de pestaña.

// declarar una matriz numérica bidimensional
$ Products = Array (Array ('HDD', 'Samsung', '$ 50'),
Array ('Monitor', 'Dell', '$ 90'),
Array ('mouse', 'a4tech', '$ 5'),
Array ('Impresora', 'HP', '$ 120'),
array ('ram', 'ocz', '$ 40'));
eco "
";
// imprime el encabezado
printf ("Nombre \ t \ tbrand \ t \ tprice\norte");
// imprime los valores de la matriz bidimensional utilizando bucles de foreach anidados
foreach ($ productos como $ artículo)
foreach ($ item as $ value)
// Imprima el valor con el espacio de pestaña
printf ("%s \ t \ t", $ valor);

eco "
";

eco "
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior.

Ejemplo-6: Leer los valores de la matriz asociativa multidimensional

Cree un archivo PHP con el siguiente script para iterar los valores de la matriz asociativa bidimensional utilizando el bucle de foreach anidado. Se ha declarado una matriz bidimensional de 4 filas y 4 columnas en el script. El bucle de foreach exterior se ha utilizado para leer los valores de fila de la matriz, y el bucle de foreach interno se ha utilizado para leer los valores de la columna de la matriz.

// Declarar cuatro matrices unidimencionales de cuatro elementos
$ student1 = array ("id" => 01, "nombre" => "Mir Sabbir", "Batch" => 40, "Dept" => 'CSE');
$ student2 = array ("id" => 02, "nombre" => "mahbubur rahman", "lote" => 45, "departamento" => 'bba');
$ student3 = array ("id" => 03, "nombre" => "sakil ahmed", "lote" => 48, "departamento" => 'inglés');
$ student4 = array ("id" => 04, "nombre" => "Ashikur Rahman", "lote" => 51, "departamento" => 'ete');
// Declarar una matriz bidimencional
$ mult_array = [$ Student1, $ Student2, $ Student3, $ Student4];
// Imprima las teclas y valores de la matriz asociativa bidimencional
foreach ($ mult_array as $ student)
foreach ($ student como $ key => $ valor)
eco " $ Key : $ valor
";

eco "

";

?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior.

Ejemplo-7: termine el bucle en función de la condición específica

Cree un archivo PHP con el siguiente script para iterar los valores de una matriz asociativa utilizando un bucle foreach y busque una clave particular en la matriz. Si no se proporciona ningún valor en la URL, 'Ninguno'se establecerá como el valor de búsqueda. Si la clave existe en la matriz, entonces se imprimirá el valor de la clave correspondiente, y la iteración del bucle se detendrá utilizando el romper declaración. Se imprimirá un mensaje si la clave de búsqueda no existe en la matriz.

// declarar una matriz asociativa
$ flores = ["rosa" => 90, "lirio de agua" => 87, "loto" => 45, "caléndula" => 65, "girasol" => 60, "Jasmine" => 23, "Poppy" => 54];
// Inicializar el valor de búsqueda
$ search = isset ($ _ get ['nombre'])?$ _Get ['Nombre']: 'Ninguno';
$ encontrado = falso;
// Lea las claves y los valores de la matriz usando foreach loop
foreach ($ flores como $ clave => $ valor)

// Salga desde el bucle si el valor de búsqueda existe en el bucle
if ($ key == $ búsqueda)

echo "El número tolal de $ clave es $ valor.";
$ encontrado = verdadero;
romper;


// Imprima el mensaje para una búsqueda fallida
if ($ encontrado == falso) echo "El elemento de búsqueda no existe."
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior.

Ejemplo-8: eliminar los elementos de matriz específicos

Cree un archivo PHP con el siguiente script para eliminar elementos de matriz particulares de una matriz asociativa utilizando un bucle foreach. Se han declarado dos matrices en el guión. Uno es una matriz asociativa, y otra es una matriz numérica. El valor de la matriz numérica que coincide con la clave de la matriz asociativa se eliminará de la matriz asociativa. Los valores de la matriz asociativa se imprimirán antes y después de eliminar los elementos particulares. De acuerdo con los valores de la matriz numérica, se eliminarán tres valores de matriz asociativo.

// declarar una matriz asociativa
$ flores = ["rosa" => 90, "lirio de agua" => 87, "loto" => 45, "caléndula" => 65, "girasol" => 60, "Jasmine" => 23, "Poppy" => 54];
eco "Los valores de la matriz original:
";
print_r ($ flores);
eco "
";
// Inicializar el valor de búsqueda
$ search = ['Marigold', 'Jasmine', 'Poppy'];
foreach ($ search como $ search_value)

// Lea las claves y los valores de la matriz usando foreach loop
foreach ($ flores como $ clave => $ valor)

// Salga desde el bucle si el valor de búsqueda existe en el bucle
if ($ key == $ search_value)

// eliminar el valor
unset ($ flores [$ clave]);



eco "
Los valores de la matriz después de eliminar:
";
print_r ($ flores);
eco "
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior.

Conclusión:

Los diversos usos del para cada El bucle en PHP se ha descrito en este tutorial utilizando múltiples ejemplos. Las formas de leer diferentes matrices y variables de objetos utilizando el bucle foreach se han mostrado aquí. Este bucle es mejor cuando los registros se recuperan de cualquier tabla de base de datos utilizando PHP. Este bucle se puede usar para leer solo los valores de la matriz o los valores de la propiedad del objeto y leer los valores de la matriz con claves o el valor de la propiedad con el nombre.