所以我做了一個先驗算法,這就是結果。這是我從中獲取該數組的代碼。$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 關注
- 138 瀏覽
添加回答
舉報
0/150
提交
取消