PHP:对数组进行排序

问题描述 投票:0回答:6

请问我如何对下面的数组进行排序

Array
(
    'ben' => 1.0,
    'ken' => 2.0,
    'sam' => 1.5
)

Array
(
    'ken' => 2.0,
    'sam' => 1.5,
    'ben' => 1.0
)

谢谢。

php arrays sorting key-value
6个回答
3
投票

试试这个。

<?php
$my_array = array('ben' => 1.0, 'ken' => 2.0, 'sam' => 1.5);

arsort($my_array);
print_r($my_array);
?>

arsort()
函数按相反顺序对数组进行排序。这些值保留其原始键。



2
投票

有一个完整的手册部分专门讨论这些事情:

http://php.net/manual/en/array.sorting.php

编辑:具体来说,

arsort()


1
投票
$arr = Array(
'ben' => 1.0,
'ken' => 2.0,
'sam' => 1.5
)    
$sorted = asort($arr);
$reversed = rsort($sorted);

1
投票

如果您使用常规 PHP 数组排序函数,您将丢失数组键。我认为到达你想要的东西的最短路径是这样的:

$array = array("ben" => "1.0", "ken" => "2.0", "sam" => "1.5");
array_multisort($array, SORT_DESC);
print_r($array);

确保所有数组值都是字符串或数字,否则结果将不可预测。


0
投票

sort
功能应该可以工作:

sort($theArray, SORT_NUMERIC);

更新

我没有注意到你想要相反;在这种情况下,请使用

rsort

© www.soinside.com 2019 - 2024. All rights reserved.