Сегодня я дал ответ на этот вопрос и написал сценарий, но обнаружил, что что-то пошло не так.
Вот первый сценарий
<?php
$array = array(
"0" => array (
"id" => 1204,
"custom_price" => 33.1500
),
"1" => array (
"id" => 1199,
"custom_price" => 15.83
),
"2" => array (
"id" => 1176,
"custom_price" => 16.83
)
);
usort($array, function($a, $b) {
return $a['custom_price'] - $b['custom_price'];
});
echo "<pre>";
print_r($array);
и его вывод (также вы можете проверить вывод в песочнице )
<pre>Array
(
[0] => Array
(
[id] => 1176
[custom_price] => 16.83
)
[1] => Array
(
[id] => 1199
[custom_price] => 15.83
)
[2] => Array
(
[id] => 1204
[custom_price] => 33.15
)
)
Итак, мой желаемый вывод должен быть похож на (custom_price 15.83, 16.83, 33.15000
), но фактический вывод (custom_price 16.83,15.83,33.15000
).Вы можете увидеть 15,83 наименьшее из 16,83.неверный результат сортировки
Итак, когда я изменяю custom_price 15.83 на 14.83, тогда сортировка выводится правильно
<pre>Array
(
[0] => Array
(
[id] => 1199
[custom_price] => 14.83
)
[1] => Array
(
[id] => 1176
[custom_price] => 16.83
)
[2] => Array
(
[id] => 1204
[custom_price] => 33.15
)
)
вы можете увидеть вывод в песочнице
Я не могу понять, что происходит ... есть идеи по этому поводу?
Мой вопрос: Я проверяю каждую итерацию, но не могу определить проблему.когда custom_price равен 15,83, результат неверен.почему?