У меня есть два массива, содержащих повторяющиеся значения:PHP array_diff когда есть дубликат массив значений
$test1 = Array(
"blah1",
"blah1",
"blah1",
"blah1",
"blah2"
);
$test2 = Array(
"blah1",
"blah1",
"blah1",
"blah2"
);
Я пытаюсь получить значение массива:
$result = array_diff($test1,$test2);
echo "<pre>";
print_r($result);
Мне нужно, чтобы вернуть массив с одним значением blah1
, но вместо этого он возвращает пустой массив ...
Я подозреваю, что это имеет какое-то отношение к тому, что в обоих массивах есть повторяющиеся значения, но не знаю, как исправить это. .
Пожалуйста, помогите!
EDIT:
End до написания этой функции, чтобы сделать трюк:
function subtract_array($array1,$array2){
foreach ($array2 as $item) {
$key = array_search($item, $array1);
unset($array1[$key]);
}
return array_values($array1);
}
Теперь я понимаю, но что я должен использовать вместо этого, чтобы получить желаемый эффект? – Acidon
Думаю, я могу перебрать test1 и удалить каждое подходящее значение в обоих массивах, но искал более элегантное решение – Acidon
@Acidon, что должно быть результатом, если у вас есть 5 штук «blah1» в первом массиве без «blah2», и второй массив остается неизменным? –