所以我做了一个先验算法,这就是结果。这是我从中获取该数组的代码。$count = array_count_values($arrayCount);$array = [];foreach($count as $key => $value){ $confidence = ($value/$count_antecedent); $support = ($value/$count_all_transactions); $isi = [ $key=>$confidence*$support ]; array_push($array,$isi);}return $array;我想将其从最高到最低排序,但同时保留密钥。如果这个数组已排序,我需要的只是取 4 个最大的数字。它看起来像这样(如果排序): $i = 0; foreach($sortedArray as $key => $value){ if($i == 0){ $product1 == product::find($key); } else if($i == 1){ $product2 = product::find($key); } else if($i == 2){ $product3 = product::find($key); } else if($i == 3){ $product4 = product::find($key); } $i++; }
2 回答
隔江千里
TA贡献1906条经验 获得超10个赞
因此,为了对数组进行排序,我需要使用 usort,其中每个数组中的键名称应该相同。
所以我将 $isi 变量更改为
$isi = ["value"=>$confidence*$support,"key"=>$key];
然后使用这个 usort 函数对数组进行排序
usort($array,function($a,$b){
return $a["value"] < $b["value"];
})
然后为了从数据库中获得 4 个最高的乘积,对代码进行轻微的更改
$i = 0;
foreach($array as $key => $value){
if($i == 0){
$product1 = product::find($value['key']);
}
else if($i == 1){
$product2 = product::find($value['key']);
}
else if($i == 2){
$product3 = product::find($value['key']);
}
else if($i == 3){
$product4 = product::find($value['key']);
}
$i++;
}
- 2 回答
- 0 关注
- 91 浏览
添加回答
举报
0/150
提交
取消