PHP:
<?php
/**
* non deve essere restituita due volte se in uno dei due array è presente una volta
* ma solo se in entrambi è presente due volte
* Es. Presi due array (a, b, b, c) e (a, a, b, b,), il risultato voglio che sia (a, b, b)
* ma forse il problema andrebbe formulato dicendo,
* un elemento deve essere presente in tutte e due le array,
* voglio sapere il minimo delle volte che vi compare
* comunque faccia il confronto
**/
$a2 = array("a", "a", "b", "b");
$a1 = array("a", "b", "b", "c");
$c1 = array_count_values($a1);
$c2 = array_count_values($a2);
var_dump($c1); echo "<br />"; var_dump($c2); echo "<br />";
foreach ($c1 as $key => $val) {
if (!empty($c2[$key]))
echo " Key : ".$key." Value : ".min($val, $c2[$key])."<br />";
}
/**
* RISULTATO 1
array(2) { ["a"]=> int(2) ["b"]=> int(2) }
array(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(1) }
Key : a Value : 1
Key : b Value : 2
* RISULTATO 2 (scambiando le array di partenza)
array(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(1) }
array(2) { ["a"]=> int(2) ["b"]=> int(2) }
Key : a Value : 1
Key : b Value : 2
**/
?>
altrimenti qual è la regola da applicare ?