我想大量遍历“ 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,并且我的所有记录都是已知的。
答案 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()
而不是使用循环来生成批处理,然后合并这两种格式,然后重新整理结果。