2
votes

Comment supprimer la correspondance exacte de la chaîne?

Comment puis-je remplacer / supprimer le mot de correspondance exacte de la chaîne, un exemple de chaîne

$string = 'Hello world, command data test com';

Comment supprimer com (correspondance exacte de la chaîne) mais ne pas supprimer le com de la commande à

php

1 commentaires

str_replace supprime com de la commande vers, cela n'aide pas


3 Réponses :


6
votes

4 commentaires

Je vous remercie! c'est ce dont j'avais besoin!


@Smartpal je ne pense pas, str_replace () remplace la commande par mand


@ShanteshwarInde Ouais c'est .... Désolé, j'ai oublié com dans la commande. Voté


@ShanteshwarInde terminé, il fallait attendre 4 minutes de plus pour l'accepter



3
votes

Version courte:

<?php
$string = 'Hello world, command data test com';
$words = explode(' ', $string);
$words = array_diff($words, ['com']);
$string = join(' ', $words);

Explication:

  • explode ('', $ string) divise votre chaîne en un tableau de mots
  • array_diff ($ words, ['com']) supprime les éléments du deuxième tableau du premier tableau. Donc au cas où le tableau de $ words contient le mot com , il sera supprimé
  • join ('', $ words) concat toutes les chaînes du tableau $ words , en divisant chaque mot l'un de l'autre par un espace.

Extrait complet:

join(' ',array_diff(explode(' ', $string), ['com']));


2 commentaires

même si ma réponse a plus de votes positifs, mais celle-ci est ma préférée! ajoutez simplement une explication pour que plus de gens comprennent. Merci!


Je pense honnêtement que le vôtre est meilleur! Haha je vais ajouter une meilleure explication



1
votes

Une autre version ... Si votre chaîne d'entrée est toujours dans cet ordre, vous pouvez le faire avec rtrim

Snippet

Hello world, command data test

Output

$string = 'Hello world, command data test com';
$string = rtrim($string, ' com');
echo $string;


0 commentaires