Contacts

Foreach langue php commander. Faire et foreach cycles. Modifier l'indice de réseau interne lors de l'itération

Souvent, vous devez passer à travers tous les éléments du tableau PHP et effectuer une opération sur chaque élément. Par exemple, vous pouvez afficher chaque valeur dans la table HTML ou définir chaque élément une nouvelle valeur.

Dans cette leçon, nous examinerons la conception de Foreach lors de l'organisation d'un cycle sur des tableaux indexés et associés.

Cycle par des valeurs d'élément

Le cas le plus facile de Foreach est l'organisation d'un cycle par des valeurs dans la matrice indexée. Syntaxe principale:

Foreach ($ tableau en tant que valeur $) (// faire n'importe quoi avec valeur $) // Le code est effectué après la fin du cycle terminé

Par exemple, le script suivant passe dans la liste des administrateurs dans la matrice indexée et affiche le nom de chaque:

$ directeurs \u003d tableau ("Alfred Hitchcock", "Stanley Kubrick", "Martin Scortses", "Fritz Lang"); Foreach ($ d'administrateurs comme $ administrateur) (écho $ Directeur. "
"; }

Le code ci-dessus sera affiché:

Alfred Hitchcock Stanley Kubrick Martin Scorsese Fritz Lang

Cycle sur les clés et les valeurs

Qu'en est-il des matrices associées? Lorsque vous utilisez ce type de tableaux, il est souvent nécessaire d'avoir accès à la clé de chaque élément, ainsi que de sa valeur. La conception foreach a un moyen de résoudre la tâche:

Foreach ($ array comme $ clé \u003d\u003e $ valeur) (// faire quelque chose avec $ clé et / ou avec valeur $) // Le code ici est exécuté après la fin du cycle terminé.

Un exemple d'organisation de cycle en fonction de la matrice associée avec des informations sur le film, affiche la clé de chaque élément et sa valeur dans la liste HTML des définitions:

$ film \u003d tableau ("titre" \u003d\u003e "fenêtre arrière", "réalisateur" \u003d\u003e "alfred hitchcock", "année" \u003d\u003e 1954, "minutes" \u003d\u003e 112); Écho "

"; Foreach ($ film comme $ clé \u003d\u003e $ valeur) (écho"
$ Clé:
"; Écho"
$ valeur
";) Écho"
";

Ce script va supprimer:

Titre: Directeur de la fenêtre arrière: Alfred Hitchcock Année: 1954 minutes: 112

Changer la valeur de l'élément

Et quel est le cas pour changer la valeur de l'élément lorsque le cycle passe-t-il? Vous pouvez essayer ce code:

Foreach ($ myarray comme valeur $) (valeur $ \u003d 123;)

Cependant, si vous l'exécutez sur l'exécution, vous constaterez que les valeurs dans le tableau ne changez pas. La raison est que pour les travaux avec copie Valeurs massives, et non avec l'original. Ainsi, le tableau d'origine reste intact.

Pour modifier les valeurs de la matrice dont vous avez besoin relier sur le sens. Pour ce faire, mettez un signe et devant la valeur variable dans la conception de Foreach:

Foreach ($ myarray en tant que valeur / valeur $) ($ valeur \u003d 123;)

Par exemple, le script suivant passe le cycle chaque élément (nom du directeur) dans le tableau $ Directors et utilise la fonction PHP Explode () et la conception de la liste pour modifier les noms du nom et du nom de famille:

$ directeurs \u003d tableau ("Alfred Hitchcock", "Stanley Kubrick", "Martin Scortses", "Fritz Lang"); // modifier le nom du nom de chaque élément de Foreach ($ directeurs en tant qu'administrateur et $ par $) (Liste ($ mandataire, $ nom de nom) \u003d exploser ("", $ directeur); $ Directeur \u003d "$ Nom, $ fiateName"; ) non défini (administrateur $); // Affiche le résultat final dessert ($ administrateurs en tant que Directeur $) (ECHO $ \u200b\u200bDirecteur. "
"; }

Le script supprimera:

Hitchcock, Alfred Kubrick, Stanley Scorsese, Martin Lang, Fritz

Notez que le script appelle la fonction non définie () pour supprimer la variable $ Directeur après la fin du premier cycle. C'est une bonne pratique si vous envisagez d'utiliser une variable plus tard dans le script dans un autre contexte.

Si vous ne supprimez pas le lien, c'est-à-dire le risque d'exécution ultérieure du code de référence occasionnel au dernier élément de la matrice («Lang, Fritz»), si vous utilisez davantage la variable Directeur $, qui conduira à Conséquences imprévues!

Résumé

Dans cette leçon, nous avons examiné comment utiliser la conception PHP foreach pour organiser un cycle sur les éléments de la matrice. Des questions ont été examinées:

  • Comment organiser un cycle sur les éléments du tableau
  • Comment accéder à la clé et à la valeur de chaque élément
  • Comment utiliser un lien pour modifier les valeurs lorsque vous passez un cycle

Le cycle PHP foreach peut être utilisé comme suit:

foreach ($ array_name comme valeur $) (// code qui devrait être exécuté)

foreach ($ array_name as $ clé \u003d\u003e $ valeur) (// // code qui devrait être exécuté)

Un exemple d'utilisation d'un cycle foreach avec une matrice numérique

Dans cet exemple, nous créerons un tableau de cinq éléments avec des valeurs numériques. Après cela, le cycle PHP foreach sera utilisé pour effectuer l'itération de cette matrice. À l'intérieur du cycle foreach, nous avons utilisé ECHO pour afficher la valeur du tableau:

Voir la version de démonstration et le code

Exemple avec des clés et des valeurs de la matrice

Cet exemple décrit un autre moyen d'utiliser le cycle PHP. Pour ce faire, nous avons créé un éventail associatif de trois éléments. Cela inclut les noms des employés ( comme des clés) et des montants salariaux ( comme des valeurs):

Voir la version de démonstration et le code

Un exemple de modification de la valeur d'un élément de tableau dans le cycle de foresach

Vous pouvez également utiliser PHP Tableau pour modifier les valeurs des éléments de réseau. Pour ce faire, utilisez "&" avant "$" pour une valeur variable. Par example:

& $ valeur_of_element

La valeur sera modifiée. Pour que cela soit plus clair, considérez l'exemple suivant.

Dans cet exemple, nous avons créé un tableau numérique de cinq éléments. Après cela, la boucle de forach a été utilisée pour afficher les valeurs des éléments.

Ensuite, a créé un autre cycle foreach, où "&" est ajouté avant $ value_of_element. Dans les supports frisés, nous affectons de nouvelles valeurs aux éléments du tableau.

Pour voir la différence avant et après avoir attribué de nouvelles valeurs, le tableau est affiché à l'aide de la fonction Print_R ().

Voir la version de démonstration et le code

Quel est le cycle PHP foreach?

Le cycle PHP foreach est utilisé pour fonctionner avec un tableau. Il passe à tous les éléments.

Vous pouvez également utiliser pour fonctionner avec les tableaux du cycle pour le cycle. Par exemple, en utilisant la propriété de longueur pour obtenir la longueur de la matrice, puis appliquez-la en tant qu'opérateur Max. Mais foreach est-il plus facile, car il est conçu pour fonctionner avec des tableaux.

Si vous travaillez avec MySQL, ce cycle est encore plus approprié pour cela. Par exemple, vous pouvez choisir plusieurs lignes dans la table de base de données et les transmettre à un tableau. Après cela, en utilisant le cycle foreach, passez à travers tous les éléments du tableau avec l'exécution de toute action.

Notez que vous pouvez utiliser le cycle foreach avec un tableau ou uniquement avec l'objet.

Application du cycle de forach

En PHP, il existe deux façons d'utiliser le cycle PHP. Les deux sont décrits ci-dessous.

  • La syntaxe de la première méthode d'utilisation:

foreach ($ array_name en tant que valeur $) (écho $ valeur)

Dans le même temps, vous devez spécifier le nom de la matrice, puis la variable de valeur $.

Pour chaque itération, la valeur de l'élément actuel est attribuée à la variable de valeur $. Une fois l'itération terminée, la valeur de l'élément suivant est attribuée à la variable. Et donc jusqu'à ce que tous les éléments du tableau soient disparus.

  • La syntaxe de la deuxième méthode ( PHP foreach en tant que valeur clé):

Ceci convient aux tableaux associatifs dans lesquels les paires de clé / valeur sont utilisées.

Pendant chaque itération, la valeur de l'élément actuel sera attribuée à la variable $ valeur_of_element. De plus, la clé d'élément est attribuée à une variable $ Key_of_Element.

Si vous travaillez avec des tableaux numériques, vous pouvez utiliser la première méthode dans laquelle les touches des éléments ne sont pas nécessaires.

Cette publication est la traduction de l'article " PHP foreach boucle 2 façons de l'utiliser«Préparé par une équipe de projet amicale

La conception de forach est une variété de pour, inclus dans la langue pour simplifier la génération d'éléments de tableau. Il existe deux variétés d'équipe de Foreach, destinée à différents types de tableaux:

foreach (tableau d'égard €) (

foreach (tableau comme $ clé \u003d\u003e $ élément) (

Par exemple, lors de l'exécution du fragment suivant:

$ Menu \u003d arrau ("pâtes", "steak", "pommes de terre", "poisson", "frites");

foreach ($ menu comme article $) (

imprimer "$ article
";

le résultat suivant sera dérivé:

Dans cet exemple, une attention particulière devrait être portée à deux circonstances. Premièrement, la conception de Foreach retourne automatiquement au début de la matrice (dans d'autres structures cycliques qu'il ne se produit pas). Deuxièmement, il n'est pas nécessaire d'augmenter explicitement le compteur ou de passer autrement à l'élément suivant de la matrice - cela se produit automatiquement à chaque itération foreach.

La deuxième option est utilisée lorsque vous travaillez avec des tableaux associatifs:

$ wine_inventory \u003d tableau (

"Merlot" \u003d\u003e 15,

"Zinfandel" \u003d\u003e 17,

"Sauvignon" \u003d\u003e 32

foreach ($ wine_inventory comme $ i \u003d\u003e $ item_count) (

imprimer "$ item_count bouteilles de $ i restant
";

Dans ce cas, le résultat ressemble à ceci:

15 bouteilles de merlot restant

17 bouteilles de zinfandel restant

32 bouteilles de Sauvignon restant

Comme on peut le voir dans les exemples ci-dessus, la conception de la forise simplifie le travail avec des tableaux.

Le principe de fonctionnement de la conception de l'interrupteur est en partie des rappels si le résultat obtenu lors du calcul de l'expression est vérifié par la liste des coïncidences potentielles.

Ceci est particulièrement pratique lors de la vérification de plusieurs valeurs, car l'utilisation du commutateur rend un programme plus visuel et compact. Format de commande commutateur partagé:

commutateur (expression) (

cas (condition):

cas (condition):

La condition vérifiée est indiquée entre parenthèses après le mot-clé du commutateur. Le résultat de son calcul est systématiquement comparé aux conditions dans les sections de cas. Lorsque la coïncidence est détectée, le bloc de la section correspondante est effectué. Si la coïncidence n'est pas détectée, l'unité de la section par défaut en option est effectuée.

Comme indiquera les chapitres suivants, l'un des côtés les plus puissants du PNP consiste à traiter les entrées de l'utilisateur. Supposons que le programme affiche la liste déroulante avec plusieurs options et chaque ligne de lignes correspond à une commande effectuée dans une conception de cas séparée. La mise en œuvre est très pratique pour s'appuyer sur l'utilisation de la commande commutateur:

$ user_input \u003d "recettes"; // équipe sélectionnée par l'utilisateur

interrupteur ($ user_input):

cas ("recherche"):

imprimer "Effectuer une recherche!";

cas ("Dictionnaire"):

imprimer "Quel mot aimerais-tu regarder?";

cas ("recettes"):

imprimer "Voici une liste de recettes ...";

imprimer "Voici le menu ...";

Comme on peut le voir à partir du fragment indiqué, la commande Switch fournit un code d'organisation claire et visuel. La variable spécifiée dans la condition de commutation (dans cet exemple - $ user_input) est comparée aux conditions de toutes les sections de cas ultérieures. Si la valeur spécifiée dans la section de cas correspond à la valeur de la variable comparée, le bloc de cette section est effectué. La commande de pause empêche de vérifier d'autres sections de cas et complète l'exécution de la conception de commutation. Si aucune des conditions éprouvées n'est effectuée, la section par défaut en option est activée. Si la section par défaut est manquante et aucune des conditions n'est exécutée, la commande Switch est simplement terminée et le programme se poursuit sur la commande suivante.

Vous devez vous rappeler que, en l'absence de la commande de pause dans le cas de la section de cas (voir la section suivante), le commutateur continue avec la commande suivante jusqu'à ce que vous rencontriez la commande de pause ou la fin de la conception de l'interrupteur. L'exemple suivant montre les conséquences de l'absence de la pause de l'équipe oubliée: $ valeur \u003d 0,4;

commutateur (valeur $):

imprimer "la valeur est 0.4
";

imprimer "la valeur est 0,6
";

imprimer "La valeur est 0.3
";

imprimer "Vous n'avez pas choisi une valeur!";

Le résultat ressemble à ceci:

L'absence de la commande de pause a conduit au fait que non seulement la commande d'impression a été effectuée dans la section où la coïncidence a été trouvée, mais également la commande d'impression dans la section suivante. L'exécution des commandes de conception de commutation a été interrompue en raison de la commande commutateur suivant la deuxième commande d'impression.

Le choix entre le commutateur et si les commandes n'ont pratiquement aucun effet sur la performance du Pro-Gram. La décision d'utiliser une conception particulière est plutôt un programmeur personnel.

La commande de rupture interrompt immédiatement l'exécution du concepteur du moment, pour ou commuter, dans laquelle il se trouve. Cette commande a déjà été mentionnée dans la section précédente, mais l'interruption du cycle en cours n'épuise pas les fonctionnalités de l'équipe de pause. En général, la syntaxe de pause ressemble à ceci:

Le paramètre facultatif N détermine le nombre de niveaux de structures de contrôle remplies par la commande de pause. Par exemple, si la commande de pause est investie dans deux commandes tandis que la figure 2, une sortie immédiate se produit des deux cycles. Par défaut, n est égal à 1; La sortie à un niveau peut être désignée à la fois par une indication explicite de 1 et la commande de pause sans paramètre. Remarque: la commande i f ne s'applique pas au nombre de structures de contrôle interrompues par la commande de pause.

Faire et foreach cycles

Cycle faire. . . Pendant que

Cycle faire ... En C # est la version du moment avec le perverteur. Cela signifie que la condition de cycle est vérifiée après les corps du cycle. Par conséquent, les cycles font ... tandis que sont pratiques dans ces situations où l'unité des opérateurs doit être faite au moins un jour. Vous trouverez ci-dessous la forme générale de l'opérateur de cycle DO-TI:

faire (opérateurs;) tandis que (condition);

S'il n'y a qu'un seul opérateur, les crochets figutés sous cette forme sont facultatifs. Néanmoins, ils sont souvent utilisés pour faire la conception de DO-While plus lisible et ne la confonduit pas avec la conception du cycle. Le cycle DO-TI est effectué jusqu'à ce que l'expression conditionnelle soit vraie. À titre d'exemple d'utilisation du cycle DO-TI, vous pouvez apporter le programme suivant qui calcule le nombre de chiffres:

Utiliser le système; en utilisant System.Collections.Genic; En utilisant system.linq; En utilisant system.text; Espace de noms ConsoleApplication1 (String args (TRY (String args) (Essayez (// Calculez la factorielle du numéro INT I, résultat \u003d 1, Num \u003d 1; console.writine ("Entrez le numéro:"); i \u003d int.parse (Console .ReadlineLine ()); console.write ("\\ n \\ nfactorial (0) \u003d", i); do (résultat * \u003d num; NUM ++;)

Vélo

Vélo Il sert à faire appel cyclique aux éléments de la collection, qui est un groupe d'objets. C # définit plusieurs types de collections, chacun d'entre eux est un tableau. Vous trouverez ci-dessous la forme commune de l'opérateur de cycle de forach:

foreach (type_name_name type in collection) opérateur;

Ici tapez name_name_tsikla Indique le type et le nom de la variable de contrôle du cycle, qui reçoit la valeur de l'élément suivant de la collection à chaque étape d'exécution du cycle de forach. Une collection désigne une collection cycliquement interviewée, ci-après une matrice. Par conséquent, le type de variable de cycle doit correspondre au type d'élément de tableau. De plus, le type peut être désigné par le mot-clé Var. Dans ce cas, le compilateur définit le type de variable de cycle, en fonction du type d'élément de tableau. Cela peut être utile pour travailler avec un certain type de demandes. Mais, en règle générale, le type est indiqué explicitement.

L'opérateur de vélo de Foreach agit comme suit. Lorsque le cycle commence, le premier élément de la matrice est sélectionné et la variable de cycle est attribuée. À chaque étape d'itération ultérieure, l'élément suivant de la matrice est sélectionné, qui est stocké dans la variable du cycle. Le cycle est terminé lorsque tous les éléments du tableau seront sélectionnés.

La boucle de foresach vous permet de transmettre chaque élément de la collection (un objet représentant une liste d'autres objets). Formellement, de sorte que quelque chose puisse être considéré comme une collection, cela devrait supporter l'interface iEnumerable. Des exemples de collections peuvent servir de tableaux C #, des classes de collections à partir de l'espace de noms System.Collection, ainsi que des classes de collections d'utilisateurs.



Avez-vous aimé l'article? Partagez-le