从数组的末尾开始减去一个数字([1,2,3]-4 = [1,1,0])

车海伦

我有一个数组,我想从最后一个索引开始减去数字“ n”,例如:

[1,2,3,4] - 2 = [1,2,3,2]
[1,2,3,4,0,0] - 3 = [1,2,3,1,0,0]
[1,2,3,4,0] - 6 = [1,2,1,0,0]

减数永远不会大于数组值的总和。

目前,我正在使用具有微不足道的循环和减法的固定数组大小的解决方案。对于动态尺寸,我将如何处理呢?哪些PHP方法将使此操作更容易?

很快

我准备了一个小的示例代码,它应该可以工作:

$arr1 = array( 1,2,3,4); //-2
$arr2 = array( 1,2,3,4,0,0); //-3
$arr3 = array( 1,2,3,4,0,); //-6


array_subtract( $arr1, 2 );
array_subtract( $arr2, 3 );
array_subtract( $arr3, 6 );

print_r($arr1);
print_r($arr2);
print_r($arr3);

//heres a handy function which requires the array and the subtraction value as input 
function array_subtract( &$array, $sub ) { 
    $size = sizeof( $array ) - 1;

    for( $i = $size; $i >= 0; $i-- ) :
        if ($sub > 0 ) :
            if ( $array[$i] > $sub ) :
                $array[$i] -= $sub;
                $sub = 0;
            else : 
                $sub -= $array[$i];
                $array[$i] -= $array[$i];
            endif;
        else :
            break;
        endif;
    endfor;    
}

print_r输出的样子

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 2
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 0
    [5] => 0
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 1
    [3] => 0
    [4] => 0
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从数组的末尾开始减去一个数字([1,2,3]-4 = [1,1,0])

来自分类Dev

我怎么知道是否可以通过从1开始加4来获得一个数字?

来自分类Dev

我怎么知道是否可以通过从1开始加4来获得一个数字?

来自分类Dev

如何从另一个数组中减去一个数组的每个值,以找到数组1的值减去数组2的值= 0的位置?

来自分类Dev

python 将列表 [0, 1, 2, 3, 4, 5] 转换为 [0, 1, 2], [1,2,3], [2,3,4]

来自分类Dev

给定一个张量 [5,4,3,4],如何生成一个常数张量,其中每行有 n 个 1 和 m 个零,n=5,4,3,4,m=0,1,2,1。

来自分类Dev

给定1至10个元素的数组的4个数字。查找3个数字,它们的总和可以生成所有四个数字?

来自分类Dev

创建序列0、0、0、0、0、1、1、1、1、1、2、2、2、2、2、3、3、3、3、3、4、4、4、4、4 ,带有seq()的4

来自分类Dev

使用Scala收集方法可帮助将[0,0,0,1,1,1,1,0,0,1,1]的列表转换为[3,4,2,2]

来自分类Dev

获取一个数组的索引,其中4个或4个以上的相邻元素为1

来自分类Dev

指针算术(char *)&a [1]-(char *)&a [0] == 4

来自分类Dev

O(n)时间中的(1,2,3)个数字的排序数组

来自分类Dev

ValueError:形状(1,1)和(4,1)未对齐:1(dim 1)!= 4(dim 0)

来自分类Dev

java.lang.StringIndexOutOfBoundsException: 开始 0,结束 4,长度 1

来自分类Dev

考虑一个列表 a=["boo",[1,2,3]],为什么 print(a[0:2][0:1]) 打印 ['boo'] 而 print(a[0:2] [0:2]) 打印 ['boo',[1,2,3]]?

来自分类Dev

[0,1,2,3,4]和[[0],[1],[2],[3],[4]]和有什么区别?

来自分类Dev

从1到4位数字中提取2个数字

来自分类Dev

生成一个小于4位数字的随机数,但它具有1位,2位或3位数字的概率相等

来自分类Dev

生成一个小于4位数字的随机数,但它具有1位,2位或3位数字的概率相等

来自分类Dev

JS /节点:一个函数,它接受一个数字N并返回一个值为[0,1,... N-1]的数组

来自分类Dev

我想把数组 [1,2,3,4,5,6,7,8,9,10,11] 变成数组 [1,2,3,4,5,6,7,8,9,1 ,0,1,1] 仅使用此算法

来自分类Dev

为什么Unix权限系统使用1 2 3 4 ...值而不是1或0?

来自分类Dev

在Excel公式中“ A1:A4 ^ {1,2,3}”是什么意思?

来自分类Dev

将数组的索引0与1、2与3、4与5组合

来自分类Dev

将数组的元素添加为a [0],a [1] + a [2],a [3] + a [4] + a [5],a [6] + a [7] + a [8] + a [9] ...等等

来自分类Dev

从1个数字创建一个数组(递增)?

来自分类Dev

每月进行计数-在一个列范围内出现一个数字(1/2/3)的次数

来自分类Dev

ValueError: 形状 (4,4) 和 (3,) 未对齐:4 (dim 1) != 3 (dim 0)

来自分类Dev

一个数字数组,一个逻辑数组。如果逻辑== 1,则使用数字值;如果逻辑== 0,则不返回任何值

Related 相关文章

  1. 1

    从数组的末尾开始减去一个数字([1,2,3]-4 = [1,1,0])

  2. 2

    我怎么知道是否可以通过从1开始加4来获得一个数字?

  3. 3

    我怎么知道是否可以通过从1开始加4来获得一个数字?

  4. 4

    如何从另一个数组中减去一个数组的每个值,以找到数组1的值减去数组2的值= 0的位置?

  5. 5

    python 将列表 [0, 1, 2, 3, 4, 5] 转换为 [0, 1, 2], [1,2,3], [2,3,4]

  6. 6

    给定一个张量 [5,4,3,4],如何生成一个常数张量,其中每行有 n 个 1 和 m 个零,n=5,4,3,4,m=0,1,2,1。

  7. 7

    给定1至10个元素的数组的4个数字。查找3个数字,它们的总和可以生成所有四个数字?

  8. 8

    创建序列0、0、0、0、0、1、1、1、1、1、2、2、2、2、2、3、3、3、3、3、4、4、4、4、4 ,带有seq()的4

  9. 9

    使用Scala收集方法可帮助将[0,0,0,1,1,1,1,0,0,1,1]的列表转换为[3,4,2,2]

  10. 10

    获取一个数组的索引,其中4个或4个以上的相邻元素为1

  11. 11

    指针算术(char *)&a [1]-(char *)&a [0] == 4

  12. 12

    O(n)时间中的(1,2,3)个数字的排序数组

  13. 13

    ValueError:形状(1,1)和(4,1)未对齐:1(dim 1)!= 4(dim 0)

  14. 14

    java.lang.StringIndexOutOfBoundsException: 开始 0,结束 4,长度 1

  15. 15

    考虑一个列表 a=["boo",[1,2,3]],为什么 print(a[0:2][0:1]) 打印 ['boo'] 而 print(a[0:2] [0:2]) 打印 ['boo',[1,2,3]]?

  16. 16

    [0,1,2,3,4]和[[0],[1],[2],[3],[4]]和有什么区别?

  17. 17

    从1到4位数字中提取2个数字

  18. 18

    生成一个小于4位数字的随机数,但它具有1位,2位或3位数字的概率相等

  19. 19

    生成一个小于4位数字的随机数,但它具有1位,2位或3位数字的概率相等

  20. 20

    JS /节点:一个函数,它接受一个数字N并返回一个值为[0,1,... N-1]的数组

  21. 21

    我想把数组 [1,2,3,4,5,6,7,8,9,10,11] 变成数组 [1,2,3,4,5,6,7,8,9,1 ,0,1,1] 仅使用此算法

  22. 22

    为什么Unix权限系统使用1 2 3 4 ...值而不是1或0?

  23. 23

    在Excel公式中“ A1:A4 ^ {1,2,3}”是什么意思?

  24. 24

    将数组的索引0与1、2与3、4与5组合

  25. 25

    将数组的元素添加为a [0],a [1] + a [2],a [3] + a [4] + a [5],a [6] + a [7] + a [8] + a [9] ...等等

  26. 26

    从1个数字创建一个数组(递增)?

  27. 27

    每月进行计数-在一个列范围内出现一个数字(1/2/3)的次数

  28. 28

    ValueError: 形状 (4,4) 和 (3,) 未对齐:4 (dim 1) != 3 (dim 0)

  29. 29

    一个数字数组,一个逻辑数组。如果逻辑== 1,则使用数字值;如果逻辑== 0,则不返回任何值

热门标签

归档