PHP compare two dimension array

*爱你&永不变心* 提交于 2019-12-21 17:49:01

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!