À l'aide de preg_replace sur un tableau
J'ai un relativement large éventail d'éléments que je veux rechercher une chaîne de caractères et de remplacer toutes les correspondances. Je suis en train d'essayer de faire cela à l'aide de preg_replace
et des expressions régulières:
preg_replace("/\d?\dIPT\.\w/", "IPT", $array);
Je veux obtenir toutes les valeurs qui correspondent à l'une 00IPT.A
ou 0IPT.A
(avec 0
une représentation numérique de caractère et A
représentant une lettre) et de les remplacer par IPT
. Cependant, j'obtiens le tableau de conversion de chaîne de caractères avis. Est-il possible de l' preg_replace
accepter un tableau de la source de données? Si non, est-il un autre moyen que je pouvais atteindre cet?
La documentation dit que preg_replace
devrait être en mesure d'accepter la matrice de sources — c'est la raison pour laquelle je te demande.
La chaîne ou un tableau de chaînes de recherche et de remplacement.
Si l'objet est un tableau, alors la recherche et de remplacement est effectuée sur chaque entrée de l'objet, et la valeur de retour est un tableau en tant que bien.
Le tableau est multidimensionnelle, si ça peut aider (a plusieurs tableaux en vertu d'un tableau principal).
Vous devez vous connecter pour publier un commentaire.
preg_replace
ne modifie pas en place. Pour modifier de façon permanente la$array
, il vous suffit d'affecter le résultat depreg_replace
à elle:fonctionne pour moi.
Remarque: le
\d{1,2}
signifie un ou deux chiffres.Si vous voulez faire cela pour un tableau à deux dimensions, vous avez besoin pour faire une boucle à travers la première dimension:
de sortie:
Noter que vous devez parcourir chaque ligne par référence (
&$row
) sinon le tableau d'origine ne sera pas modifié.votre
$array
contient quelques tableaux.preg_replace
fonctionne très bien avec les tableaux de chaînes de caractères, mais pas avec des tableaux de tableaux [de tableaux...] de chaînes.Votre valeur ne siège pas dans le tableau, comme un simple élément, mais comme un sous-ensemble de droite? Comme?
si oui:
Ou si plusieurs éléments ont cela, il suffit d'aller au large: