2010-05-30 5 views
4

Je voudrais savoir comment comparer deux valeurs de tableaux à deux dimensions.PHP comparer tableau de deux dimensions

Premier tableau

Array 1 
(
    [0] => Array 
     (
      [0] => a 
     ) 

    [1] => Array 
     (
      [0] => b 
     ) 

    [2] => Array 
     (
      [0] => c 
     ) 

} 

deuxième

Array 2 
(
    [0] => Array 
     (
      [0] => a 
     ) 

    [1] => Array 
     (
      [0] => d 
     ) 

    [2] => Array 
     (
      [0] => e 
     ) 

} 

je dois faire ma boucle pour comparer les tableaux et vérifier la valeur adaptée. Dans mon cas, array1 [0] [0] = a correspond à array2 [0] [0] = a. Si cela correspond, PHP affichera du code HTML.

Ma boucle foreach

foreach ($array1 as $arrays){ 
    foreach($arrays as $array){ 
     //need to compare array2 here not sure how to do it. 
    } 
} 
+0

"J'ai besoin de savoir si ma boucle pourrait comparer les tableaux pour vérifier la valeur correspondante." - bien, sauvegardez votre fichier et essayez-le;) – miku

+0

.... Je n'ai rien à essayer ... :( – FlyingCat

Répondre

2
foreach($array1 as $k1 => $arrays) { 
    foreach($arrays as $k2 => $val) { 

     if($array2[$k1][$k2] == $val) { 
      // $array1[$k1][$k2] is equal to $array2[$k1][$k2] 
     } 
    } 
} // end of foreach 

La syntaxe foreach($a as $k => $v) fait la même chose que foreach($a as $v), sauf qu'il met aussi la clé associée à la valeur en $k.

+1

Merci pour l'aide.Ambre – FlyingCat

+0

@mattbasta: Non , ça ne devrait pas. – Amber

1

Vous pouvez utiliser array_diff_assoclike si

if(count(array_diff_assoc($array1,array2) != 0)) 
{ 
    //Arrays are not the same 
}else{ 
    echo 'these following items are differing in throughout the arrays . ' . print_r(array_diff_assoc($array1,array2),true); 
} 

espoir que cela vous aide.

Notez également array_diff_assoc, il renvoie les éléments du tableau qui sont différents de l'autre tableau, y compris ses clés d'index.

+1

Il est à noter que cette fonction est SLOOOOOWWWWWWW. , mais il devient exponentiellement plus lent que vous ajoutez beaucoup d'éléments à eux – mattbasta

+0

Ambre a eu ce dont j'ai besoin.Merci pour le pourboire cependant .. +1 – FlyingCat

+0

Voilà un très bon point monsieur – RobertPitt

Questions connexes