Привет, я хочу сравнить все значения из 2 массивов и в конечном итоге с истинным или ложным. Я использую приведенный ниже код и думал, что результат будет ложным. но это не тот случай, когда последняя строка работает, я бы ожидал, что дисплей будет похож на
Массив ([0] => 0)
но я не вижу отображения, поэтому предположим, что php рад, что нет никакой разницы
мой код
$before = array('1', '1', '0', '0', '1', '0' ) ; $after = array('0', '1', '0', '0', '1', '0' ) ; $new_array= array_diff($before,$after); print_r ($new_array) ;
наверняка, массив_дифф должен определить разницу здесь? любая помощь будет большой благодарностью
array_diff
дает, какие элементы находятся в $before
но не $after
. Поскольку оба массива состоят из '0'
и '1'
, он возвращает пустой массив.
То, что вы ищете, – array_diff_assoc
, который просматривает ключи и значения вместе.
Заметьте, вы получите не будет Array( [0] => 0 )
, а скорее Array( [0] => 1 )
, поскольку он дает элементы из первого массива, которые не существуют в другом ,
Если вам нужен другой вывод, вам нужно будет сделать array_diff_assoc($after, $before)
.
$before = array('1', '1', '0', '0', '1', '0' ) ; $after = array('0', '1', '0', '0', '1', '0' ) ; $new_array= array_diff_assoc($before,$after); print_r ($new_array) ;
См. http://php.net/manual/en/function.array-diff.php
«Множественные вхождения в $ array1 обрабатываются одинаково».
Итак, поскольку у вас есть нули и все, все «одинаково».
Да, array_diff
обнаруживает разницу. Он находит различия между следующими массивами с первым. Однако он не сравнивает 0 до 0 и от 1 до 1. Он просто проверяет, находится ли каждое значение в Array1 в Array2 … ArrayN. Эта функция возвращает массив всех вхождений в Array1, которые не были найдены в других массивах, а не true / false boolean. См. Пример 1 в документации.
Привет, я хочу сравнить все значения 2 массивов и в конечном итоге с истинным или ложным
$bool = ($array1 == $array2);