recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment supprimer des éléments spécifiques d'un tableau

<p>Comment supprimer un élément d’un tableau lorsque je connais sa valeur ? Par exemple : </p> <p>J'ai un tableau : </p> <pre class="brush:php;toolbar:false;">$array = array('pomme', 'orange', 'fraise', 'myrtille', 'kiwi');</pre> <p>Saisie utilisateur<code>fraise</code></p> <p><code>strawberry</code> a été supprimé de <code>$array</code>. </p> <p>L'explication complète est la suivante :</p> <p>J'ai une base de données qui stocke une liste d'éléments séparés par des virgules. Le code extrait la liste en fonction de l'emplacement sélectionné par l'utilisateur. Ainsi, s'ils sélectionnent Strawberry, le code extrait chaque entrée contenant Strawberry et utilise split() pour la convertir en tableau. Je souhaite supprimer l'élément sélectionné par l'utilisateur du tableau, par exemple les fraises dans cet exemple. </p>
P粉141455512P粉141455512463 Il y a quelques jours529

répondre à tous(2)je répondrai

  • P粉511757848

    P粉5117578482023-08-21 13:42:03

    Utilisez array_diff() pour une solution en une seule ligne :

    $array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi', 'strawberry'); //再加一个'strawberry'以证明它可以删除字符串的多个实例
    $array_without_strawberries = array_diff($array, array('strawberry'));
    print_r($array_without_strawberries);

    ... Aucune fonction supplémentaire ni boucle foreach requise.

    répondre
    0
  • P粉254077747

    P粉2540777472023-08-21 12:54:10

    Utilisez la fonction array_search函数获取键,并使用unset pour le supprimer s'il est trouvé :

    if (($key = array_search('strawberry', $array)) !== false) {
        unset($array[$key]);
    }
    La fonction

    array_search renvoie false lorsque l'élément n'est pas trouvé (renvoie null avant PHP 4.2.0).

    S'il peut y avoir plusieurs éléments avec la même valeur, vous pouvez utiliser la fonction array_keys pour obtenir les clés de tous les éléments :

    foreach (array_keys($array, 'strawberry') as $key) {
        unset($array[$key]);
    }

    répondre
    0
  • Annulerrépondre