Я использую Laravel. У меня есть 2 массива. Например
$array1 = [
'test1',
'',
'test2',
'test3',
'',
'test4',
'',
];
$array2 = [
null
];
dd(array_diff($array1, $array2));
результат
array:4 [▼
0 => "test1"
2 => "test2"
3 => "test3"
5 => "test4"
]
но я ожидал
array:7 [▼
0 => "test1"
1 => ""
2 => "test2"
3 => "test3"
4 => ""
5 => "test4"
6 => ""
]
Можете ли вы спросить, почему в array_diff рассматривается null is equal ''
, и как я могу это исправить без каких-либо дополнительных кодов. Теперь я решил это
foreach ($array1 as $key => $value) {
if (in_array($value, $array2, true)) {
unset($array1[$key]);
}
}