Как проверить одинаковый массив между двумя массивами в Stack Overflow

У меня есть два массива, как показано ниже:

$arr1 = array(1,2,3, 1,2,3, 1,2,3);
$arr2 = array(1,2,3)

Мне нужно проверить, что они одинакового массива. Я сделал что-то вроде:

$result = !empty(array_intersect($arr1, $arr2));
print $result;

Результат: есть true

Но это неправильно для моих требований.

Скажем, например, если я обновлю массивы ::

$arr1 = array(1,2,3, 1,2,3, 1,2,3, 7);
$arr2 = array(1,2,3)

Результат: все еще true, Мне нужен результат false

Вопрос: Как получить результат, что вышеупомянутые массивы не совпадают после обновления массива $arr1 в PHP?

Заранее спасибо.

1

Решение

Насколько я понял, ваш $arr1 нужны только элементы, которые находятся в $arr2, когда $arr1 есть новый элемент, вы утверждаете, что он не идентичен.

Исходя из этого понимания, вам нужно использовать array_diff:

$arr1 = array(1, 2, 3, 1, 2, 3, 1, 2, 3, 7);
$arr2 = array(1, 2, 3);

if (count(array_diff($arr1, $arr2))) {
echo 'Not Identical';
} else {
echo 'Identical';
}

Ты можешь использовать empty вместо count, В этом случае просто измените условия.


Пояснение:

array_diff дает вам разницу элементов, которых нет ни в одном из массивов. Так что в этом случае это имеет место:

Array
(
[9] => 7
)

array_intersect дает вам пересечение элементов, которые присутствуют в обоих массивах. Таким образом, в этом случае это имеет место:

Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 1
[4] => 2
[5] => 3
[6] => 1
[7] => 2
[8] => 3
)

Так вот почему empty функция возвращает true когда вы используете array_intersect,

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector