为了账号安全,请及时绑定邮箱和手机立即绑定

将此数组从最高到最低排序

将此数组从最高到最低排序

PHP
潇潇雨雨 2023-10-15 10:43:34
所以我做了一个先验算法,这就是结果。这是我从中获取该数组的代码。$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贡献1853条经验 获得超18个赞

使用arsort($array)功能。

这就是你所需要的。


查看完整回答
反对 回复 2023-10-15
?
隔江千里

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++;

 }


查看完整回答
反对 回复 2023-10-15
  • 2 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信