Ojo
manual
Cita: array_intersect handles duplicate items in arrays differently. If there are duplicates in the first array, all matching duplicates will be returned. If there are duplicates in any of the subsequent arrays they will not be returned.
<?php
array_intersect(array(1,2,2),array(1,2,3)); //=> array(1,2,2)
array_intersect(array(1,2,3),array(1,2,2)); //=> array(1,2)
?>
Luego deberías eliminar el valor del array intersección para evitar que se eliminen las repeticiones.
$array1 = array( 2, 2, 3, 5, 7, 13);
$array2 = array( 2, 3, 3, 7, 11, 13);
$intersec = array_intersect($array1,$array2); //$intersec=array(2,2,3,7,13)
$key=0 => $val=2 => $array1 = array( 2, 3, 5, 7, 13); $array2 = array(3, 3, 7, 11, 13); $intersec=array(3,7,13)
$key=1 => $val=2 => $array1 = array( 2, 3, 5, 7, 13); $array2 = array(3, 3, 7, 11, 13); $intersec=array(3,7,13)
$key=2 => $val=3 => $array1 = array( 2, 5, 7, 13); $array2 = array(3, 7, 11, 13); $intersec=array(7,13)
$key=3 => $val=5 => $array1 = array( 2, 5, 7, 13); $array2 = array(3, 7, 11, 13); $intersec=array(7,13)
$key=4 => $val=7 => $array1 = array( 2, 5, 13); $array2 = array(3, 11, 13); $intersec=array(13)
$key=5 => $val=13 => $array1 = array( 2, 5); $array2 = array(3, 11); $intersec=array()
$array1 = array( 2, 5);
$array2 = array(3, 11);
Código PHP:
Ver original<?php
$array1 = array( 2, 2, 3, 5, 7, 13); $array2 = array( 2, 3, 3, 7, 11, 13);
foreach ($array1 as $key=>$val){
}
echo "Eliminando $val ..<br/>";
}
}
echo "<pre>";
echo "<br />";
echo "</pre>";
(Hecho al vuelo)