Comment parcourir un tableau et implémenter la suppression d'éléments en PHP

PHPz
Libérer: 2023-04-14 18:54:05
original
855 Les gens l'ont consulté

Le tableau en PHP est un type de données très couramment utilisé. Il utilise des paires clé-valeur pour stocker des données et peut stocker tout type de valeur, y compris des nombres, des chaînes, des objets, etc.

Dans le développement réel, nous avons souvent besoin de parcourir et d'exploiter des tableaux, parmi lesquels la suppression d'éléments de tableau est l'une des opérations les plus courantes. Cet article explique comment parcourir un tableau et supprimer des éléments en PHP, apportant ainsi plus de commodité à votre développement PHP.

1. Opérations de base des tableaux PHP

En PHP, les tableaux sont déclarés à l'aide des instructions array() ou []. Voici un exemple simple de déclaration de tableau :

$array = array("apple", "orange", "banana");
Copier après la connexion
Copier après la connexion

Le tableau contient trois éléments de chaîne, à savoir "pomme", "orange" et "banane". Nous pouvons accéder aux éléments du tableau en utilisant la valeur d'index comme indiqué ci-dessous :

$fruit = $array[1]; // 获取数组中的第二个元素"orange"
Copier après la connexion

Nous pouvons également utiliser l'instruction foreach pour parcourir tous les éléments du tableau :

foreach($array as $fruit){
  echo $fruit . "\n";
}
Copier après la connexion

Cette instruction produira le résultat suivant :

apple
orange
banana
Copier après la connexion

Maintenant, nous pouvons commencer à apprendre à supprimer des éléments lors d’une itération dans un tableau.

2. Mauvaise façon de parcourir et de supprimer des éléments d'un tableau

En PHP, utilisez la fonction unset() pour supprimer un élément du tableau. Par conséquent, de nombreux développeurs font preuve d'un peu d'imagination pour proposer la méthode suivante pour parcourir et supprimer des éléments d'un tableau :

foreach($array as $key => $fruit){
  if($fruit == "orange"){
    unset($array[$key]);
  }
}
Copier après la connexion

Cette instruction fonctionne bien et peut en effet supprimer tous les éléments avec la valeur "orange" dans le tableau. Cependant, le problème survient lorsque nous essayons d’utiliser cette méthode pour supprimer séquentiellement chaque élément du tableau.

La raison est que pour chaque élément à supprimer, l'élément précédent est supprimé et la structure clé-valeur dans le tableau est également modifiée. Le résultat de l'exécution de cette méthode peut contenir des erreurs inattendues.

Par exemple, considérons le tableau suivant :

$array = array("apple", "orange", "banana");
Copier après la connexion
Copier après la connexion

Si nous essayons de parcourir et de supprimer tous les éléments du tableau comme suit :

foreach($array as $key => $fruit){
  unset($array[$key]);
}
Copier après la connexion

alors le résultat de l'exécution de cette méthode sera :

array()
Copier après la connexion

Tous les éléments du tableau sont supprimés. Cependant, comme les éléments sont supprimés lors de la traversée du tableau, la structure clé-valeur du tableau change.

Afin de résoudre ce problème, nous devons utiliser une méthode plus stable et plus fiable pour parcourir et supprimer les éléments du tableau.

3. Utilisez la méthode while pour parcourir et supprimer des éléments du tableau

L'idée de base de l'utilisation de la méthode while pour parcourir et supprimer des éléments du tableau est la suivante : utilisez l'instruction while pour parcourir le tableau, enregistrez la position du pointeur du tableau actuel via une variable, puis supprimez-le en fonction de la position actuelle du pointeur.

Ce qui suit est l'exemple de code de base de cette méthode :

$fruit = array("apple", "orange", "banana");
while(list($key, $value) = each($fruit)){
  if($value == "orange"){
    unset($fruit[$key]);
  }
}
Copier après la connexion

Par rapport à la méthode précédente, la plus grande différence entre cette instruction et la méthode précédente est l'utilisation d'une instruction while pour parcourir le tableau. Dans chaque boucle, la fonction list() sera utilisée pour attribuer le nom de clé et la valeur du tableau aux variables $key et $value, et l'instruction if sera utilisée pour déterminer si l'élément actuel doit être supprimé. S'il doit être supprimé, utilisez la fonction unset() pour supprimer l'élément.

Utilisez le code ci-dessus pour effectuer l'opération de suppression de traversée. Le résultat final sera :

Array
(
    [0] => apple
    [2] => banana
)
Copier après la connexion

Ce résultat est conforme à nos attentes. À ce stade, les éléments du tableau ont été supprimés.

4. Parcourez et supprimez les éléments d'un tableau multidimensionnel

Si votre tableau est un tableau multidimensionnel, la méthode ci-dessus peut ne pas fonctionner correctement. Mais PHP fournit une fonction array_walk_recursive() qui peut nous aider à parcourir et à exploiter des éléments dans des tableaux multidimensionnels.

Voici un exemple de code de parcours pour supprimer des éléments d'un tableau multidimensionnel :

function array_remove_value(&$haystack, $needle){
  $iterator = function(&$value, $key) use(&$haystack, $needle){
    if($value === $needle){
      unset($haystack[$key]);
    }
    else if(is_array($value)){
      array_walk_recursive($value, $GLOBALS['iterator']);
    }
  };
  array_walk($haystack, $iterator);
}

$fruit = array(
    array("apple", "orange"),
    array("banana", "orange")
);

array_remove_value($fruit, "orange");
print_r($fruit);
Copier après la connexion

Ce code est différent de l'exemple de tableau unidimensionnel précédent. Tout d'abord, une fonction appelée array_remove_value est définie et la fonction array_walk() est utilisée pour parcourir le tableau multidimensionnel, tout en utilisant &$value et $key pour référencer la valeur et le nom de clé de l'élément actuel du tableau afin qu'il puisse être modifié à l'intérieur. la fonction.

Ensuite, la fonction utilise une instruction if pour vérifier si l'élément actuel est égal à l'élément à supprimer. Si c'est le cas, utilisez la fonction unset() pour supprimer l'élément. Sinon, il vérifie si l'élément actuel est un tableau et si tel est le cas, la fonction est appelée de manière récursive pour continuer à parcourir et à traiter les éléments du tableau multidimensionnel.

Finalement, le résultat de l'exécution de cette fonction sera :

Array
(
    [0] => Array
        (
            [0] => apple
        )

    [1] => Array
        (
            [0] => banana
        )

)
Copier après la connexion

Ce résultat est conforme à nos attentes A ce moment, tous les éléments "oranges" du tableau ont été supprimés.

5. Résumé

En PHP, l'utilisation de tableaux est très courante, et la traversée et l'exploitation d'éléments de tableau sont également des opérations très courantes. Dans cet article, nous avons expliqué comment parcourir et supprimer des éléments de tableau en PHP et introduit des considérations lors de l'utilisation de tableaux multidimensionnels.

Nous espérons que les méthodes fournies dans cet article seront utiles à votre développement PHP et vous permettront de gérer plus efficacement les opérations sur les tableaux.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!