Array

Eléphant du PHP | 59 Messages

21 sept. 2005, 09:43

Bonjour à tous.
Bon je crois que mon problème est assez simple mais je n'ai pas trouvé comment faire sur la doc.
Je possède 2 tableaux, l'un avec un ensemble de valeurs et l'autre avec un sous ensemble de ces valeurs, je voudrais générer un 3e tableau avec les valeurs complementaires, presentent dans le 1er et absentent dans le 2e, et sans case vide.

Information importante, je travail avec php 4.2.3, donc je ne peux pas utiliser la fonction array_diff_assoc().

Voila,

Merci d'avance.

Mammouth du PHP | 19672 Messages

21 sept. 2005, 10:01

Tu pourrais faire à ce moment là une boucle : pour chaque élément du premier tableau, tu en vérifie l'absence dans le second avec in_array() et si la réponse est TRUE, tu l'ajoute à un troisième tableau:
<?php
$tableau_1 = array("bleu", "rouge", "vert", "jaune", "blanc");
$tableau_2 = array("bleu", "vert", "blanc");
$tableau_3 = array();
foreach($tableau_1 as $couleur)
{
    /* Si la valeur est présente dans le tableau 1 et absente du tableau 2, on l'ajoute au tableau 3 */
    if(!in_array($couleur, $tableau_2))
    {
        $tableau_3[] = $couleur;
    }
}
?>
<pre>
<?php
/* Affichage de vérification */
var_dump($tableau_3);
?>
</pre>
Ce qui va faire afficher :

Code : Tout sélectionner

array(2) { [0]=> string(5) "rouge" [1]=> string(5) "jaune" }
Modifié en dernier par Cyrano le 21 sept. 2005, 10:55, modifié 2 fois.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 59 Messages

21 sept. 2005, 10:53

Ouah,

Merci pour cette réponse rapide et impeccable. Mon problème est résolu. Va falloir que je pense a upgrader mon php.

Merci encore.

:D