PHP verifier que toutes les valeur d'un table

Résolu
louiji -  
 louiji -
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. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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).
    0
  2. Alain42
     
    Sinon dans ta fonction, tu as break; en trop ça te fait sortir sans rien renvoyer
    0
  3. louiji
     
    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
    0