php中的数字字符串数组排序

php中的数字字符串数组排序,php,arrays,Php,Arrays,我有一个php数组,如: myarr[1] = "1", myarr[2] = "1.233", myarr[3] = "0", myarr[4] = "2.5" 这些值实际上是字符串,但我希望这个数组以数字排序,同时考虑浮点值和保持索引关联 请帮帮我。 感谢使用php函数,并在回调函数中将字符串转换为浮点数进行比较。您可以将字符串转换为实数(浮点数),然后对其进行排序: foreach ($yourArray as $key => $value) { $yourArray[$k

我有一个php数组,如:

myarr[1] = "1",
myarr[2] = "1.233",
myarr[3] = "0",
myarr[4] = "2.5"
这些值实际上是字符串,但我希望这个数组以数字排序,同时考虑浮点值和保持索引关联

请帮帮我。
感谢使用php函数,并在回调函数中将字符串转换为浮点数进行比较。

您可以将字符串转换为实数(浮点数),然后对其进行排序:

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

sort($yourArray, SORT_NUMERIC);
您可以使用正常功能。需要第二个参数来告诉您要如何对其进行排序。选择
SORT\u NUMERIC

例如:

  sort($myarr, SORT_NUMERIC); 
  print_r($myarr);
印刷品

Array
(
    [0] => 0
    [1] => 1
    [2] => 1.233
    [3] => 2.5
)
更新:要维护键值对,请使用(采用相同的参数),例如输出:

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

输出:

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