Тупой просмотр всех возможных подмножеств множества индексов (подмножество задаётся двоичным числом: 1 — есть элемент, 0 — нет элемента). Без рекурсии. Без оптимизации.
<?php
$array = [1, 2, 3, 4, 5];
$SUM = 7;
$LIMIT = 1 << count($array);
for ($set = 0; $set < $LIMIT; $set++) {
$s = 0;
for ($i = 0; $i < count($array); $i++)
if ((1 << $i) & $set) $s += $array[$i];
if ($s == $SUM) {
echo 'Индексы элементов массива, составляющих сумму: ';
for ($i = 0; $i < count($array); $i++)
if ((1 << $i) & $set) echo $i, ' ';
break;
}
}