Массив PHP с условием

у меня есть массив в php

$a = array(1,2,3,4,5);

и когда я отображаю $ a со значением массива условия = 6, он покажет
1 + 5 и 2 + 4

-4

Решение

Немного плохое описание, но я думаю, что понимаю.

Это перебирает $ a и находит то, что создает сумму.
Он разрезает массив, чтобы убедиться, что он не получает одинаковые совпадения в конце. (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 . "\n";
}
}

Выход:

1+5
2+4

https://3v4l.org/FHViL

Отредактированный код, чтобы быть более эффективным с большими массивами.
Теперь он сортирует массив и, когда значение, на которое он смотрит, больше или равен сумме, которую он находит, он остановится.
Теоретически. Это должно быть в состоянии остановить If($val>=$sum/2) break; но я не уверен

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector