PHP сравнить двухмерный массив - PullRequest
4 голосов
/ 30 мая 2010

Хотелось бы узнать, как сравнить значение двух двумерных массивов.

Первый массив

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

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

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

}

Второй

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

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

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

}

Мне нужно сделать свой цикл, чтобы сравнить массивы и проверить соответствующее значение. В моем случае array1 [0] [0] = a соответствует array2 [0] [0] = a. Если это соответствует, php выведет немного html.

Мой цикл foreach

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

Ответы [ 2 ]

2 голосов
/ 30 мая 2010
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

Синтаксис foreach($a as $k => $v) делает то же самое, что и foreach($a as $v), за исключением того, что он также помещает ключ, связанный со значением, в $k.

1 голос
/ 30 мая 2010

Вы можете использовать array_diff_assoclike, так что

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);
}

Надеюсь, это поможет вам.

Также обратите внимание на array_diff_assoc, он возвращает элементы массива, которые оказались отличными от другого массива, включая его индексные ключи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...