<?php
$array_1 = [
'id' => '42',
'base_id' => '23',
'role_id' => '1',
'title' => 'Manage Account',
'slug' => 'manage_account',
'parent' => '31',
'order' => '1',
'visibility' => '1'
];
$array_2 = [
'id' => '42',
'base_id' => '23',
'role_id' => '99999',
'title' => 'Manage Account',
'slug' => 'manage_account',
'parent' => '31',
'order' => '1',
'visibility' => '1'
];
var_dump(array_diff($array_1, $array_2));
// Result (unexpected)
// array (size=0)
// empty
$diff = [];
foreach ($array_1 as $key => $value) {
if ((string) $array_1[$key] !== (string) $array_2[$key]) {
$diff[$key] = $value;
}
}
var_dump($diff);
// Result (expected)
// array (size=1)
// 'role_id' => string '1' (length=1)
- Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- array(0) {
}
array(1) {
["role_id"]=>
string(1) "1"
}
preferences:
137.3 ms | 404 KiB | 289 Q