i have array in php
$a = array(1,2,3,4,5);
and when i echo $a with condition array value = 6, it will show 1+5 and 2+4
i have array in php
$a = array(1,2,3,4,5);
and when i echo $a with condition array value = 6, it will show 1+5 and 2+4
A bit bad description but I think I understand.
This will loop through $a and find what creates the sum.
It slices the array to make sure it does not get the same matches on the end. (1+5 & 5+1).
$a = array(3,5,1,4,2,8,6,7,9,10);
Echo findsum(6, $a);
Function findsum($sum, $a){
Asort($a);
$a = Array_values($a);
Foreach($a as $key => $val){
If($val>=$sum) break;
$find = $sum - $val;
$subarr = array_slice($a, $key+1);
If (in_array($find, $subarr)) echo $val . "+" . $find . "
";
}
}
Output:
1+5
2+4
Edited code to be more efficient with larger arrays.
Now it sorts the array and when the value it looks at is larger or equal to the sum it is finding it will stop.
In theory. It should be able to stop If($val>=$sum/2) break;
but I'm not sure