Gegeben ein Array, ich möchte die Anzahl der verschiedenen Paare von Elementen anzeigen, deren Summe gleich K - Ich habe Code geschrieben wie unten, aber ich bin nicht in der Lage für einen guten Zweck zu setzen array_diff: \Finden Sie die Anzahl der verschiedenen Paare von Zahlen, deren Summe gleich 'K' ist - PHP
<?PHP
function numberOfPairs($a, $k) {
$cnt = 0;
for($i=0; $i<count($a); $i++){
for($j=$i; $j<count($a); $j++){
if($a[$i]+$a[$j] == $k){
$arrRes[$i][0] = $a[$i];
$arrRes[$i][1] = $a[$j];
$cnt++;
}
}
}
sort($arrRes);
//print $cnt;
$d = $cnt;
for($i=0; $i<count($arrRes); $i++){
for($j=0; $j<count($arrRes); $j++){
$diff = array_diff($arrRes[$i], $arrRes[$j]);
if($diff == null)
$d += 1;
}
}
print $d;
}
$a = [6,6,3,9,3,5,1];
$k = 12;
numberOfPairs($a, $k);
?>
Hier werden die Ausgangsfelder mit Summe gleich 12 sind, das heißt, das Ergebnis von $ arrRes ist -
[0] => Array ([0] => 3 [1] => 9)
[1] => Array ([0] => 6 [1] => 6)
[2] => Array ([0] => 6 [1] => 6)
[3] => Array ([0] => 9 [1] => 3)
Die Zählung ist 4, aber die Zählung sollte 2 sein, da (6,6) und (3,9) die einzigen unterschiedlichen Paare sind.