【问题标题】:ARRAY PHP WITH CONDITION带条件的数组 PHP
【发布时间】:2018-01-05 21:42:42
【问题描述】:

我在 php 中有数组

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

当我使用条件数组值 = 6 回显 $a 时,它将显示 1+5 和 2+4

【问题讨论】:

  • 你看到我的回答了吗?

标签: php arrays for-loop sum conditional-statements


【解决方案1】:

描述有点糟糕,但我想我明白了。

这将遍历 $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;,但我不确定

【讨论】:

    猜你喜欢
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    相关资源
    最近更新 更多