Php foreach循环内的计算
我在正确计算的循环中遇到了一个问题。下面是要翻转的原始数组。请参阅数组第二次dd的结果。 如您所见,值已经排序。这里是foreach循环内部的问题。即使我的预期结果很简单,我的逻辑似乎也很混乱。 请看下面的结果。希望任何人都能帮助我找出最简单的方法,只需达到预期的输出 我试图更改键1.401和1.501,以避免与索引的迭代冲突Php foreach循环内的计算,php,foreach,laravel-5.1,Php,Foreach,Laravel 5.1,我在正确计算的循环中遇到了一个问题。下面是要翻转的原始数组。请参阅数组第二次dd的结果。 如您所见,值已经排序。这里是foreach循环内部的问题。即使我的预期结果很简单,我的逻辑似乎也很混乱。 请看下面的结果。希望任何人都能帮助我找出最简单的方法,只需达到预期的输出 我试图更改键1.401和1.501,以避免与索引的迭代冲突 array:5 [▼ "1.4" => 40 "1.401" => 42 "1.5" => 3
array:5 [▼
"1.4" => 40
"1.401" => 42
"1.5" => 38
"1.501" => 39
"1.6" => 41
]
$count1 = 0;
foreach ($scho as $scholar_id2) {
$scholar = Scholar::find($scholar_id2);
$crits = New Criteria;
$crits->scholar_id = $scholar->scholar_id;
$crits->scholarship_id = $scholarship_id;
$crits->save();
$count1++;
}
索引和值的翻转数组的结果
array:5 [▼
"40" => 1.4
"42" => 1.4
"38" => 1.5
"39" => 1.5
"41" => 1.6
]
$list1 = Criteria::where('scholarship_id','=',$scholarship->scholarship_id)->get();
$all_id = [];
foreach ($list1 as $id) {
array_push($all_id, $id->criteria_id);
}
$last_scholar_gpa = 0;
$percentage = 1.2;
foreach ($all_id as $id2) {
$crits = Criteria::find($id2);
foreach ($all_list_GPA as $scholar_GPA) {
if($percentage > 0.5 && $last_scholar_gpa != $scholar_GPA)
$percentage = $percentage - 0.1;
$total_points_two = $scholarship->scholarship_points_two * $percentage;
$crits->criteria_gpa = $total_points_two;
}
$crits->save();
$last_scholar_gpa = $scholar_GPA;
}
这是奖学金的价值_点数_二=25
这应该是结果:
id criteria_gpa
40 25.00
42 25.00
38 22.50
39 22.50
41 20.00
保存在数据库中的当前结果(但计算错误)
数组:5[▼ “1.4”=>40“1.4”=>42“1.5”=>38“1.5”=>39“1.6”=>41]
不是有效数组;你不能有重复的keys@MarkBaker我更新了我的帖子。我不清楚你的代码试图归档什么。标准的作用是什么?什么是$crits->save()代码>存档?尽量减少并进一步简化您的示例
id criteria_gpa
40 22.50
42 17.50
38 12.50
39 7.50
41 2.50