在 php 中对数字字符串数组进行排序

2022-08-30 13:21:53

我有一个php数组,如:

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

这些值实际上是字符串,但我希望这个数组按数字排序,同时考虑浮点值并保持索引关联。

请帮帮我。谢谢


答案 1

您可以使用正常的排序功能。它需要第二个参数来告诉您如何对其进行排序。选择。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
)

答案 2

Use 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 )