【问题标题】:Subtract an integer from an array in PHP从PHP中的数组中减去一个整数
【发布时间】:2014-03-03 01:28:05
【问题描述】:

我有一个变量是:

$sum = 42500;

我有一个如下所示的数组:

$targetsarray = array(
    '5000' => '',
    '5000' => '',
    '10000' => '',
    '10000' => '',
    '10000' => '',
    '10000' => '',
    '10000' => '',
    '12000' => '',
    '12000' => '',
    '15000' => '',
    '15000' => '',
    '15000' => '',
};

$targetsarray 中的键是从数据库中动态生成的,所以它实际上看起来像这样:

$targetsarray = array(
    $targets => '',
};

我想在数组中实现的是用数组中的每个连续键减去 $sum 值,这样最终的 $targetsarray 看起来像这样:

$sum = 45000;

$targetsarray = array(
    '5000' => '40000', // subtract 5000 from 45000
    '5000' => '35000', // subtract 5000 from 40000
    '10000' => '25000', // subtract 10000 from 35000
    '10000' => '15000', // subtract 10000 from 25000
    '10000' => '5000', // subtract 10000 from 15000
    '10000' => '0', 
    '10000' => '0',
    '10000' => '0',
    '10000' => '0',
    '10000' => '0',
    '10000' => '0',
    '10000' => '0',
};

无论如何我可以从 $targetsarray 中的每个键中减去 $sum 吗?数组 noobie 将非常感谢您的帮助:)

【问题讨论】:

  • 数组的所有键必须是唯一的。您不能将 5000 两次和 10000 十次作为数组的键。
  • @SharanyaDutta 说了什么。
  • 嗨@SharanyaDutta,感谢您的评论。请问有没有更好的办法呢?数组中的键代表每月的销售目标,值代表累积的费用,因此总是存在重复键的可能性。到目前为止,我已经尝试了很多解决方案,但到目前为止没有一个是有效的。谢谢!

标签: php arrays subtraction


【解决方案1】:

你可能只有两个数组:

$targetsarray = array(5000, 5000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000);
$anotherarray = array();
$sum = 45000;
foreach($targetsarray as $val){
$anotherarray[] = $sum = ($sum >= $val) ? $sum-$val : 0;
}

【讨论】:

  • 哇@sharanya 非常感谢你,我真的很感激!我使用 for & while 循环来回前进。你让它看起来很容易。再次感谢您的回答,我一定会从中学习:)
猜你喜欢
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多