Wiliwilliam | PHP soustraire un tableau à un autre (texte) |
1 #1 |
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38209
Karma: 18936 |
Imaginons que j'ai deux tableaux php
$table1 = array("marion", "didier", "gateau", "citron", "654987", "zimbabwe", "national") et $table2 = array( "gateau", "zimbabwe") quel est le moyen le plus rapide pour obtenir ce tableau: $tablesoustraction = array("marion", "didier", "citron", "654987", "national") qui est la soustraction des valeurs similaires entre $table2 et $table1. Il y a une fonction? ou je vais devoir scripter ça? EDIT: je vais tenter array_diff() pour voir
Contribution le : 21/08/2017 11:39
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Invité | 1 #2 |
|
---|---|---|
FantômeInvité
|
@Wiliwilliam :
je dirais : in_array(); foreach($table1 as $key=>$t){ if(in_array($t, $table2)){ unset($table1[$key]); } } echo "<pre>"; print_r($table1); echo "</pre>"; j'ai pas testé, tu me dis si ça marche ? Edit : j'étais curieux donc j'ai testé. ça fonctionne mais il manquait un ; et une ) (en gras)
Contribution le : 21/08/2017 12:06
|
|
Signaler |
Wiliwilliam | 0 #3 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38209
Karma: 18936 |
@Zzzzz
Merci pour ta réponse rapide. Il se trouve que la fonction diff_array() répond parfaitement à ma demande finalement En tout cas je garde in_array() sous le bras en cas de soucis
Contribution le : 21/08/2017 12:12
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Invité | 1 #4 |
|
---|---|---|
FantômeInvité
|
@Wiliwilliam
Tu parle de array_diff plutôt non ? Effectivement, c'est plus rapide et moins destructeur que ma solution. Par contre pour un tableau associatif je crois pas que ça marche. Dans l'exemple ici il supprime "green" même si il n'a pas la même clé.
Contribution le : 21/08/2017 12:18
|
|
Signaler |
Wiliwilliam | 0 #5 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38209
Karma: 18936 |
@Zzzzz
array_diff_assoc() prend en compte les clés visiblement
Contribution le : 21/08/2017 12:21
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Invité | 0 #6 |
|
---|---|---|
FantômeInvité
|
Exact. Bon décidément ma contribution n'a servi à rien. Je retourne bouder
Contribution le : 21/08/2017 12:23
|
|
Signaler |
Arsenick | 0 #7 |
|
---|---|---|
J'aime glander ici
Inscrit: 13/12/2006 00:12
Post(s): 6493
Karma: 1038 |
@Wiliwilliam
La solution la plus rapide c'est de faire un Merge puis un Unique: $table1 = array("marion", "didier", "gateau", "citron", "654987", "zimbabwe", "national"); $table2 = array( "gateau", "zimbabwe"); $tmp = array_merge($table1,$table2); $tablesoustraction = array_unique($tmp); Ou la version feignasse (moins lisible): $tablesoustraction = array_unique(array_merge($table1,$table2)); Attention cette méthode n'est utilisable que si les clés n'ont pas d'importance.
Contribution le : 23/08/2017 21:15
|
|
Signaler |