【发布时间】:2020-03-24 03:12:01
【问题描述】:
我编写了代码根据最小欧几里得值和最大相似度对数据进行排序,数据首先根据最小欧几里德值排序,如果有一个具有最小欧几里德值的ata,则下一个排序最大相似度,代码如下:
$gg = [
["Kasus" => "K01", "Euclidean" => "4", "Similrity" => "0.6"],
["Kasus" => "K02", "Euclidean" => "3", "Similrity" => "0.7"],
["Kasus" => "K03", "Euclidean" => "1", "Similrity" => "0.8"],
["Kasus" => "K04", "Euclidean" => "1", "Similrity" => "0.9"],
];
function k_sort($k_a, $k_b) {
return $k_a["Euclidean"] - $k_b["Euclidean"];
}
usort($gg, "k_sort");
foreach($gg as $ta) {
echo "<br>";
list($kasus, $euclidean, $similarity) = array_values($ta);
echo $kasus."-".$euclidean."-".$similarity;
echo "<br>";
}
以上代码的输出结果如下:
但是为什么输出仍然按欧几里得排序,我的代码有什么问题? 顺序应该是K04、K03、K02、K01。
【问题讨论】: