Например, если у меня есть два массива:
$array1 = array('a', 'b', 'c', 'd');
$array2 = array('a', 'c', 'b', 'd');
Предполагая, что оба массива имеют одинаковые порядки (на основе последних и первых значений), как бы я проверил, чтобы увидеть, что это два различия в их ключевых значениях пар в определенных порядках?
Как и как, как я мог вернуться (возможно, через другую функцию), где именно эти различия есть, по ключевому слову?
Использование array_diff_assoc() с обратным вызовом даст вам результат разницы, но только с первыми ключами и возвращаемыми значениями массивов. Если вы хотите разделить два массива, измените порядок параметров
$array1 = array('a', 'b', 'c', 'd');
$array2 = array('a', 'c', 'b', 'd');
function key_compare ($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
})
print_r(array_diff_uassoc($array1,$array2, "key_compare");
Результат... Массив ([1] => b [2] => c)
Перевернутый...
print_r(array_diff_uassoc($array2,$array1, "key_compare");
Результат... Массив ([1] => c [2] => b)
array_diff_uassoc
есть пример того, что вы ищете на этой странице php.net/manual/en/function.array-diff-uassoc.php