Я сделал код для сортировки данных на основе наименьшего евклидового значения и наибольшего сходства, данные сортируются в первую очередь на основе наименьшего евклидового значения, если есть 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.