PHP verifier que toutes les valeur d'un table

Résolu
Bonjour,

je souhaite realiser une fonction qui verifie que toutes les valeurs d'un tableau "A" sont presente dans le tableau"B" (le tableau "B" peut quand a lui contenir plus de valeur et donc ne pas etre identique au tableau "A" )
voici le code que j'ai fait, mais il semble avoir des disfonctionnement:

function arraycompare($array1, $array2)
{
foreach($array2 as $key2=>$value2){
$contenue="no";
foreach($array1 as $key1=>$value1){
if($key1==$key2 && $value1==$value2){$contenue="ok";}
}
if ($contenue!="ok") { $valeurarendre=False;break; }else{ $valeurarendre=true; }
}
return $valeurarendre;
}

3 réponses

  1. Modérateur
    Voici ce que je te conseille: tu as la fonction array_intersec pour obtenir un tableau possédant les éléments en commun entre deux tableaux.

    Si ce tableau d'intersection est égal au tableau A alors c'est bon.
    <?
    $inter = array_intersec($array1, $array2);
    if($array1 == $inter){
        //$array1 est inclus dans $array2
    }
    ?>


    Ca ne marchera que si les éléments de A se retrouvent dans B avec le même type (il ne faut pas qu'un entier dans A se retrouve en tant que chaîne dans B).
    1. Sinon dans ta fonction, tu as break; en trop ça te fait sortir sans rien renvoyer
      1. voici la fonction corrigé

        function arraycompare($array1, $array2)
        {
        $intera1a2 = array_intersec_assoc($array1, $array2);
        if($array1 == $intera1a2){return true;} else {return false;}
        }

        merci a alain42