根据百分比建立阵列

时间:2019-02-03 18:24:59

标签: php

我想大量遍历“ for循环”,并构建一种数组,其中一种数组的使用方式为x%,另一种格式为x%。

为了举例说明: 我想生成一系列假客户记录。

这个想法是,在循环的最后,我将得到一个数组,其中包含20%的用户(仅包含客户ID)和80%的用户(包含名字,姓氏和已知详细信息)。详细信息的生成并不重要,而是循环中拆分的百分比。

到目前为止,这是我正在使用的:

    $percentage = $percent_known / 100;
    $percnum = $this->number_of_records * $percentage;
    $iterat = $this->number_of_records / $percnum;

    for ($i=0; $i < $this->number_of_records; $i++) { 
        if ($i % $iterat == 0) {
            //add known records
        }
        else {
            //just add a customer id
        }
    }

当将80用作$ percent_known的值时,我得到的迭代值为1.25,并且我的所有记录都是已知的。

1 个答案:

答案 0 :(得分:2)

您可以简化它以填充所有已知的值(最多填充$percnum),然后添加未知的值。如果希望它们是随机的,则只需在末尾使用shuffle()即可将结果混合在一起...

$percentage = $percent_known / 100;
$percnum = $this->number_of_records * $percentage;

$customers = [];
for ($i=0; $i < $this->number_of_records; $i++) {
    if ($i < $percnum) {
        //add known records
    }
    else {
        //just add a customer id
    }
}
shuffle($customers);

如果值相同-您始终可以使用array_fill()而不是使用循环来生成批处理,然后合并这两种格式,然后重新整理结果。