How to sum all the duplicate numbers in array with PHP

1 Answer

0 votes
$arr = array(2, 3, 4, 2, 1, 1, 7, 5, 8, 9, 5, 3);

// 2 + 2 + 3 + 3 + 1 + 1 + 5 + 5 = 22

echo sumUniqueNumbers($arr);

function sumUniqueNumbers($arr) {
    $result = 0;
    foreach ($arr as $num) {
        // if (first index $num != last index $num) -> duplicates
        if (array_search($num, $arr) !== array_search_last($num, $arr)) {
            $result += $num;
        }
    }
    return $result;
}

function array_search_last($needle, $haystack) {
    $value = null;
    for ($i = count($haystack) - 1; $i >= 0; $i--) {
        if ($haystack[$i] === $needle) {
            $value = $i;
            break;
        }
    }
    return $value;
}

 
 
/*
run:
 
22
 
*/

 



answered Jun 2, 2024 by avibootz

Related questions

1 answer 96 views
1 answer 103 views
1 answer 102 views
1 answer 107 views
1 answer 95 views
...