dozug64282 2016-06-25 17:39
浏览 39
已采纳

如何在php中的数组中添加特定数字[关闭]

$a = array(2, 6, 24, 16, 7, 10);

I know how to add all the numbers using array_sum() but if I want to add only the numbers between 2 and 16 how can do that?

This is one of the solution that that I've come up with:

    $a = array(2, 6, 24, 16, 7, 10);
    $r = array_slice($a, 0, -2);
    print_r (array_sum($r));

Just want to know if there is any other way to get the result.

  • 写回答

1条回答 默认 最新

  • dsh84723 2016-06-25 18:46
    关注

    To deal with dynamic bound limits you can extend the initial approach(array_slice + array_sum) using array_search function:

    $arr = [2, 6, 24, 16, 7, 10];
    $a = 10;
    $b = 24;
    
    $lowerBound = array_search($a, $arr);
    $upperBound = array_search($b, $arr);
    
    if (($low = $lowerBound) > $upperBound) {  // if bounds were confused
        $lowerBound = $upperBound;
        $upperBound = $low;
    }
    $sum = array_sum(array_slice($arr, $lowerBound, $upperBound - $lowerBound + 1));
    
    print_r($sum);  // 57
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 nslt的可用模型,或者其他可以进行推理的现有模型
  • ¥15 arduino上连sim900a实现连接mqtt服务器
  • ¥15 vncviewer7.0安装后如何正确注册License许可证,激活使用
  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并2
  • ¥66 关于人体营养与饮食规划的线性规划模型
  • ¥15 基于深度学习的快递面单识别系统
  • ¥15 Multisim仿真设计地铁到站提醒电路
  • ¥15 怎么用一个500W电源给5台60W的电脑供电
  • ¥15 请推荐一个轻量级规则引擎,配合流程引擎使用,规则引擎负责判断出符合规则的流程引擎模板id
  • ¥15 Excel表只有年月怎么计算年龄