Les tableaux ne se chevauchent pas dans la boucle php
Les tableaux sont un type de données puissant et important en PHP. Lorsque nous devons opérer sur un tableau en boucle, nous constatons parfois que les valeurs du tableau se superposent, ce qui peut conduire à des résultats erronés. Dans cet article, nous verrons comment éviter les problèmes de superposition de tableaux dans les boucles PHP.
Tout d’abord, comprenons le concept de base des tableaux en PHP. En PHP, un tableau est une collection ordonnée dans laquelle chaque élément possède une clé unique, qui peut être un nombre ou une chaîne. Nous pouvons définir un tableau en utilisant :
$myArray = array("apple", "banana", "orange");
Lorsque nous opérons sur un tableau dans une boucle, nous utilisons généralement une boucle for ou une boucle foreach pour parcourir les éléments du tableau. Voici un exemple d'utilisation d'une boucle for pour parcourir un tableau :
$myArray = array("apple", "banana", "orange"); for ($i = 0; $i < count($myArray); $i++) { echo $myArray[$i] . ", "; }
Le résultat de sortie est :
apple, banana, orange,
Dans le code ci-dessus, nous utilisons la fonction count() pour obtenir le nombre d'éléments dans le tableau, puis utilisez une boucle for pour parcourir chaque élément du tableau et utilisez l'instruction echo pour afficher la valeur de chaque élément.
Maintenant, disons que nous effectuons certaines opérations sur un tableau dans une boucle et constatons que le résultat est incorrect, probablement parce que les valeurs du tableau sont empilées. Par exemple, nous voulons compter le nombre de caractères de toutes les chaînes du tableau et stocker les résultats dans un autre tableau :
$myArray = array("apple", "banana", "orange"); $charCountArray = array(); for ($i = 0; $i < count($myArray); $i++) { $charCountArray[$i] = strlen($myArray[$i]); } print_r($charCountArray);
Le résultat de sortie est :
Array ( [0] => 5 [1] => 6 [2] => 6 )
Dans le code ci-dessus, nous utilisons la fonction strlen() pour obtenir chaque caractère Le nombre de caractères dans la chaîne et stocke le résultat dans le tableau $charCountArray. Cependant, nous avons constaté que les valeurs du tableau se superposaient et que la valeur du tableau augmentait après chaque boucle, ce qui entraînait un résultat final incorrect. En effet, en PHP, la méthode d'affectation des tableaux est "pass by reference", c'est-à-dire que lorsque l'on opère sur un tableau, on opère en réalité sur la référence du tableau d'origine, plutôt que sur une copie du tableau. .
Afin d'éviter ce problème, nous pouvons utiliser les deux méthodes suivantes :
Méthode 1 : Utiliser les noms de clés pour stocker les résultats
Nous pouvons utiliser les noms de clés du tableau pour stocker les résultats dans la boucle, afin qu'il ne provoquera pas la superposition de la valeur du tableau. Voici un exemple de code :
$myArray = array("apple", "banana", "orange"); $charCountArray = array(); for ($i = 0; $i < count($myArray); $i++) { $charCountArray[$i] = strlen($myArray[$i]); } print_r($charCountArray);
Le résultat de sortie est :
Array ( [0] => 5 [1] => 6 [2] => 6 )
Dans le code ci-dessus, nous utilisons le nom de clé $i du tableau pour stocker le résultat au lieu d'utiliser l'indice du tableau. De cette façon, chaque élément a un nom de clé unique et n'entraîne pas de chevauchement des valeurs du tableau.
Méthode 2 : Réinitialiser le tableau avant de boucler
Nous pouvons réinitialiser le tableau avant de boucler pour éviter le chevauchement des valeurs du tableau. Voici un exemple de code :
$myArray = array("apple", "banana", "orange"); $charCountArray = array(); // 重置数组 $charCountArray = array_pad($charCountArray, count($myArray), 0); for ($i = 0; $i < count($myArray); $i++) { $charCountArray[$i] = strlen($myArray[$i]); } print_r($charCountArray);
Le résultat de sortie est le même que celui de la première méthode :
Array ( [0] => 5 [1] => 6 [2] => 6 )
Dans le code ci-dessus, nous utilisons la fonction array_pad() pour réinitialiser le tableau. La fonction array_pad() complète le tableau à la longueur spécifiée avec la valeur spécifiée. Dans ce code, nous ne spécifions pas de valeur pour le remplissage, qui est par défaut 0, donc tous les éléments du tableau seront complétés par 0.
Résumé
Dans les boucles PHP, il existe deux façons d'éviter le problème de superposition de tableau : utiliser des noms de clés pour stocker les résultats ou réinitialiser le tableau avant de boucler. Quelle que soit la méthode que vous utilisez, vous pouvez éviter des résultats erronés dus à la superposition de tableaux. Comprendre et maîtriser ces méthodes peut nous rendre plus efficaces et plus précis dans le développement PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La compilation JIT de PHP 8 améliore les performances en compilant le code fréquemment exécuté en code machine, bénéficiant aux applications avec des calculs lourds et en réduisant les temps d'exécution.

L'article traite des 10 meilleures vulnérabilités de l'OWASP dans les stratégies PHP et d'atténuation. Les problèmes clés incluent l'injection, l'authentification brisée et les XS, avec des outils recommandés pour surveiller et sécuriser les applications PHP.

L'article traite du cryptage symétrique et asymétrique en PHP, en comparant leur aptitude, leurs performances et leurs différences de sécurité. Le chiffrement symétrique est plus rapide et adapté aux données en vrac, tandis que l'asymétrique est utilisé pour l'échange de clés sécurisé.

L'article traite de la sécurisation des téléchargements de fichiers PHP pour éviter les vulnérabilités comme l'injection de code. Il se concentre sur la validation du type de fichier, le stockage sécurisé et la gestion des erreurs pour améliorer la sécurité de l'application.

L'article examine la mise en œuvre d'authentification et d'autorisation robustes dans PHP pour empêcher un accès non autorisé, détaillant les meilleures pratiques et recommandant des outils d'amélioration de la sécurité.

L'article traite des stratégies pour prévenir les attaques du CSRF dans PHP, notamment en utilisant des jetons CSRF, des cookies de même site et une bonne gestion de session.

L'article traite des fonctions MySQLI_Query () et MySQLI_Fetch_assoc () en PHP pour les interactions de la base de données MySQL. Il explique leurs rôles, leurs différences et fournit un exemple pratique de leur utilisation. L'argument principal se concentre sur les avantages de l'USIN

L'article discute de la récupération des données des bases de données à l'aide de PHP, couvrant les étapes, les mesures de sécurité, les techniques d'optimisation et les erreurs communes avec des solutions. COMMANDE CHAPITRE: 159
