function getIntersection($aArr,$bArr)
{
asort($aArr);
asort($bArr);
$result = [];
$aIndex = 0;
$bIndex = 0;
$aCount = count($aArr);
$bCount = count($bArr);
while ($aIndex < $aCount && $bIndex < $bCount) {
if ($aArr[$aIndex] < $bArr[$bIndex]) {
$aIndex++;
} elseif ($bArr[$bIndex] < $aArr[$aIndex]) {
$bIndex++;
} else {
$result[] = $aArr[$aIndex];
$aIndex++;
$bIndex++;
}
}
return $result;
}
function getUnionArray($a, $b)
{
$unionArray = [];
$aIndex = 0;
$bIndex = 0;
$aCount = count($a);
$bCount = count($b);
while ($aIndex < $aCount && $bIndex < $bCount) {
if ($a[$aIndex] < $b[$bIndex]) {
$unionArray[] = $a[$aIndex];
$aIndex++;
} elseif ($a[$aIndex] > $b[$bIndex]) {
$unionArray[] = $b[$bIndex];
$bIndex++;
} else {
$unionArray[] = $a[$aIndex];
$aIndex++;
$bIndex++;
}
}
if ($aIndex < $aCount) {
for ($i = $aIndex; $i < $aCount; $i++) {
$unionArray[] = $a[$i];
}
}
if ($bIndex < $bCount) {
for ($i = $bIndex; $i < $bCount; $i++) {
$unionArray[] = $b[$i];
}
}
return $unionArray;
}
function getDifferenceArray($a, $b)
{
$result = [];
$aIndex = 0;
$bIndex = 0;
$aCount = count($a);
$bCount = count($b);
while ($aIndex < $aCount && $bIndex < $bCount) {
if ($a[$aIndex] < $b[$bIndex]) {
$result[] = $a[$aIndex];
$aIndex++;
} elseif ($a[$aIndex] > $b[$bIndex]) {
$result[] = $b[$bIndex];
$bIndex++;
} else {
$aIndex++;
$bIndex++;
}
}
if ($aIndex < $aCount) {
for ($i = $aIndex; $i < $aCount; $i++) {
$result[] = $a[$i];
}
}
if ($bIndex < $bCount) {
for ($i = $bIndex; $i < $bCount; $i++) {
$result[] = $b[$i];
}
}
return $result;
}
网友评论