gpt4 book ai didi

php - 用特定数字填充数组

转载 作者:行者123 更新时间:2023-12-02 07:31:56 24 4
gpt4 key购买 nike

我需要用数字填充一个数组,举几个例子:

  • nbreParChargement = 4; 10 份

    • 预期输出:$niveaux = array(4,4,2); 4+4+2 = 10
  • nbreParChargement = 6; 14 份

    • 预期输出:$niveaux = array(6,6,2); 6+6+2 = 14
  • nbreParChargement = 16; 13

    • 预期输出:$niveaux = array(13); 13 = 13
  • nbreParChargement = 4; 30 元

    • 预期输出:$niveaux = array(4,4,4,4,4,4,4,2); 4+4+4+4+4+4+4+2 = 30

我尝试解决这个问题,但我不知道完美的解决方案:

function chargement($nbre, $nbreParChargement){

$niveaux = array();
for($i=0; $i<=$nbre; $i++){
$niveaux[$i] = $i + $nbreParChargement;
}
}

最佳答案

另一种实现,两行代码,适用于 php >= 5.6:

function chargement($nbre, $nbreParChargement){
$niveaux = array_fill(0, floor($nbre/$nbreParChargement), $nbreParChargement);
$niveaux[] = $nbre - array_sum($niveaux);

return $niveaux;
}

var_dump(chargement(10, 4));
var_dump(chargement(14, 6));
var_dump(chargement(13, 16));
var_dump(chargement(30, 4));

array_fill使用 $nbreParChargement 的值填充 $nbre/$nbreParChargement 条目的数组。最后一个值是 $nbre 与其他元素总和之间的差值,由 $nbreParChargement * Floor($nbre/$nbreParChargement) 给出,该值始终 > 0.

Demo .

这仅适用于 php >= 5.6,因为 array_fill 仅接受该版本的 0 作为 num。以前,num 必须大于零。

因此,对于任何版本的 php:

function chargement($nbre, $nbreParChargement){
$niveaux = array();
if ($n = floor($nbre/$nbreParChargement)) {
$niveaux = array_fill(0, $n, $nbreParChargement);
}

$niveaux[] = $nbre - array_sum($niveaux);
return $niveaux;
}

Demo .

关于php - 用特定数字填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33100780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com