Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function is_summable($numbers, $sum) {
- //Sort provided numbers and assign numerical keys.
- asort($numbers);
- $numbers = array_values($numbers);
- //Var for additions and var for number of provided numbers.
- $total = 0;
- $numbers_length = count($numbers);
- //Empty var to fill below.
- $code = '';
- //Loop and add for() loops.
- for ($i = 0; $i < $numbers_length; $i++) {
- $code .= 'for ($n' . $i . ' = 0; $n' . $i . ' < ' . $numbers_length . '; $n' . $i . '++) {';
- if ($i != 0) {
- $code .= 'if ($n' . $i . ' != $n' . ($i - 1) . ') {';
- }
- $code .= '$total += intval($numbers[$n' . $i . ']);';
- $code .= 'if ($total == $sum) {';
- $code .= 'return true;';
- $code .= '}';
- }
- //Add ending bracket for for() loops above.
- for ($l = 0; $l < $numbers_length; $l++) {
- $code .= '$total -= intval($numbers[$n' . $i . ']);';
- if ($l != 0) {
- $code .= '}';
- }
- $code .= '}';
- }
- //Finally, eval the code.
- eval($code);
- //If "true" not returned above, return false.
- return false;
- }
- $num_arr = array(1,2,3,4,5,6,7,8,9);
- var_dump(is_summable($num_arr, 24));
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement