Maison  >  Article  >  développement back-end  >  Comment supprimer des éléments par valeur dans un tableau bidimensionnel php

Comment supprimer des éléments par valeur dans un tableau bidimensionnel php

PHPz
PHPzoriginal
2023-04-27 09:08:06542parcourir

En PHP, le tableau est une structure de données très courante, parmi laquelle les tableaux bidimensionnels sont encore plus couramment utilisés. Cependant, lors de l'utilisation d'un tableau à deux dimensions, nous devons parfois supprimer un élément. À ce stade, nous devons envisager de supprimer l'élément par valeur. Cet article explique comment supprimer des éléments d'un tableau bidimensionnel par valeur en PHP.

1. Utilisez la boucle foreach pour supprimer des éléments

Pour supprimer des éléments par valeur dans un tableau à deux dimensions, le moyen le plus simple consiste à utiliser une boucle foreach pour parcourir le tableau, puis à déterminer si chaque élément du tableau est égal à la valeur que nous voulons supprimer, si elle est égale, supprimez simplement l'élément. Le code est le suivant :

$arr = array(
    array('name' => '张三', 'age' => 18),
    array('name' => '李四', 'age' => 20),
    array('name' => '王五', 'age' => 22),
);

foreach ($arr as $k => $v) {
    if ($v['name'] == '李四') {
        unset($arr[$k]);
    }
}

Dans le code ci-dessus, nous définissons d'abord un tableau bidimensionnel$arr, puis utilisons une boucle foreach pour parcourir le tableau afin de déterminer si la clé "nom" de chaque élément du tableau est égale à "李思", et si c'est le cas, utilisez simplement la fonction unset() pour supprimer l'élément du tableau. Le tableau final ne contiendra pas l'élément "John Doe".

Il convient de noter que lorsque vous utilisez la fonction unset() pour supprimer des éléments, vous devez utiliser $k comme nom de clé au lieu de $v, sinon une erreur sera générée.

2. Utilisez la fonction array_filter pour supprimer des éléments

Une autre façon de supprimer des éléments dans un tableau bidimensionnel par valeur consiste à utiliser la fonction array_filter, qui peut utiliser une fonction de rappel pour filtrer chaque élément du tableau et renvoyer un nouveau tableau. , ce nouveau tableau ne contient pas les éléments filtrés. Le code est le suivant :

$arr = array(
    array('name' => '张三', 'age' => 18),
    array('name' => '李四', 'age' => 20),
    array('name' => '王五', 'age' => 22),
);

$arr = array_filter($arr, function($v) {
    return $v['name'] != '李四';
});

Dans le code ci-dessus, nous passons la fonction de rappel comme deuxième paramètre à la fonction array_filter La fonction de rappel accepte chaque élément du tableau comme paramètre et renvoie une valeur booléenne. S'il renvoie vrai, cela signifie que l'élément sera conservé dans le nouveau tableau, s'il renvoie faux, cela signifie que l'élément sera supprimé du nouveau tableau.

Dans le code ci-dessus, nous utilisons une fonction anonyme comme fonction de rappel pour déterminer si la clé "name" de chaque élément est égale à "李思". Sinon, retournez true, indiquant que l'élément sera conservé dans le new array. sinon il renvoie false, indiquant que l'élément sera supprimé du nouveau tableau.

Il convient de noter que la fonction array_filter renverra un nouveau tableau, nous devons donc enregistrer le tableau renvoyé dans le tableau d'origine pour obtenir le tableau final avec les éléments spécifiés supprimés.

3. Utilisez la fonction array_search pour supprimer des éléments

Une autre façon de supprimer des éléments dans un tableau bidimensionnel par valeur consiste à utiliser la fonction array_search, qui peut être utilisée pour trouver la clé d'une valeur spécifiée dans un tableau et la renvoyer. nom de la clé. Le code est le suivant :

$arr = array(
    array('name' => '张三', 'age' => 18),
    array('name' => '李四', 'age' => 20),
    array('name' => '王五', 'age' => 22),
);

$key = array_search('李四', array_column($arr, 'name'));

if ($key !== false) {
    unset($arr[$key]);
}

Dans le code ci-dessus, nous utilisons la fonction array_search pour trouver la clé de '李思' dans le tableau. Cette fonction accepte deux paramètres. Le premier paramètre est la valeur à trouver, et le. le deuxième paramètre est la valeur à trouver. Le tableau à rechercher. Dans le code ci-dessus, nous extrayons le tableau bidimensionnel dans un tableau unidimensionnel par colonne, puis recherchons le nom de clé « 李思 » dans le tableau unidimensionnel. Une fois le nom de clé trouvé, nous utilisons le. Fonction unset() pour désactiver l'élément correspondant à la clé delete.

Il convient de noter que la fonction array_search renvoie le nom de clé du résultat de la recherche. Si la recherche échoue, elle renvoie false. Nous devons utiliser l'opérateur !== pour vérifier si la valeur de retour est fausse. Sinon, cela signifie que la recherche est réussie et que l'élément spécifié peut être supprimé. Sinon, l'élément spécifié est introuvable.

Résumé

Il existe de nombreuses façons de supprimer des éléments d'un tableau bidimensionnel par valeur. Ce qui précède présente trois méthodes courantes :

Utilisez une boucle foreach pour parcourir le tableau et déterminer si la valeur de chaque élément est égale à la valeur à être supprimé. Si égal, utilisez simplement la fonction unset() pour supprimer l'élément.

Utilisez la fonction array_filter pour filtrer le tableau et utilisez la fonction de rappel pour déterminer si chaque élément doit être conservé dans le nouveau tableau.

Utilisez la fonction array_search pour trouver la clé dans le tableau avec la valeur spécifiée, puis utilisez la fonction unset() pour supprimer l'élément correspondant à la clé.

Dans le développement réel, nous pouvons choisir différentes méthodes pour supprimer des éléments du tableau en fonction de besoins spécifiques afin d'obtenir des performances et une efficacité optimales.

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!

Déclaration:
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