сортировать числовой массив строк в php

У меня есть php-массив, например:

myarr[1] = "1", myarr[2] = "1.233", myarr[3] = "0", myarr[4] = "2.5" 

значения фактически являются строками, но я хочу, чтобы этот массив сортировался численно, также учитывая значения float и поддерживая ассоциацию индексов.

Пожалуйста, помогите мне. благодаря

Вы можете использовать обычную функцию sort . Второй параметр указывает, как вы хотите его сортировать. Выберите SORT_NUMERIC .

Пример:

  sort($myarr, SORT_NUMERIC); print_r($myarr); 

печать

 Array ( [0] => 0 [1] => 1 [2] => 1.233 [3] => 2.5 ) 

Обновление : для поддержки пар ключ-значение используйте asort (принимает те же аргументы), например вывод:

 Array ( [3] => 0 [1] => 1 [2] => 1.233 [4] => 2.5 ) 

Использовать natsort ()

 $myarr[1] = "1"; $myarr[2] = "1.233"; $myarr[3] = "0"; $myarr[4] = "2.5"; natsort($myarr); print_r($myarr); 

Вывод:

 Array ( [2] => 0 [0] => 1 [1] => 1.233 [3] => 2.5 ) 

Используйте функцию php usort и в вашей функции обратного вызова преобразуйте ваши строки в float для их сравнения.

Вы можете преобразовать свои строки в реальные числа (поплавки) и отсортировать их впоследствии:

 foreach ($yourArray as $key => $value) { $yourArray[$key] = floatval($value); } sort($yourArray, SORT_NUMERIC);