[英]sort this array from highest to lowest
所以我做了一個先驗算法,這就是結果。
這是我從中獲取此數組的代碼。
$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++;
}
使用arsort($array)
function。
這就是你所需要的。
因此,為了對數組進行排序,我需要使用 usort,其中每個數組中的鍵名都應該相同。
所以我將 $isi 變量更改為
$isi = ["value"=>$confidence*$support,"key"=>$key];
然后使用這個 usort function 來訂購陣列
usort($array,function($a,$b){
return $a["value"] < $b["value"];
})
然后從 db 獲得 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++;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.