问题
I would like to know how to compare two two-dimension arrays value.
First array
Array 1
(
[0] => Array
(
[0] => a
)
[1] => Array
(
[0] => b
)
[2] => Array
(
[0] => c
)
}
Second one
Array 2
(
[0] => Array
(
[0] => a
)
[1] => Array
(
[0] => d
)
[2] => Array
(
[0] => e
)
}
I need to make my loop to compare the arrays and check the matched value. In my case, array1[0][0]=a matches array2[0][0]=a. If it matches, php will output some html.
My foreach loop
foreach ($array1 as $arrays){
foreach($arrays as $array){
//need to compare array2 here not sure how to do it.
}
}
回答1:
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
The foreach($a as $k => $v)
syntax does the same thing as foreach($a as $v)
, except that it also puts the key associated with the value into $k
.
回答2:
You can use array_diff_assoclike so
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);
}
Hope this helps you.
Also take note of array_diff_assoc, it returns the array items that are found to be different to the other array including its index keys.
来源:https://stackoverflow.com/questions/2937341/php-compare-two-dimension-array