在PHP中排序关联数组


Sorting Associative Array in PHP

正在对数组进行排序:

它是数据库驱动的,像这样添加:

$distanceArray[] = array($attractionID => $tempDistance);

和使用前置标记的输出如下:

Array
(
    [0] => Array (
        [4] => 114.4
    )
    [1] => Array (
        [3] => 16.1
    )
    [2] => Array (
        [2] => 15
    )
    [3] => Array (
        [1] => 21.4
    )
)

我试过了,没有运气:

function cmp($a, $b)
{
    return $a['tempDistance'] - $b['tempDistance'];
}
usort($distanceArray, "cmp");

试试这个…

 $test = array( 
              array(4=>"114.4"),
              array(3=>"16.1"),
              array(2=>"15"),
              array(1=>"21.4"),     
            );
   $value = array();
foreach ($test as $key => $row)
{
    $value[$key] = array_values($row);
}
array_multisort($value, SORT_ASC,$test);
    print_r($value);

答:数组([0]=>数组([0]=> 15)[1]=>数组([0]=> 16.1)[2]=>数组([0]=> 21.4)[3]=>数组([0]=> 114.4))

演示:https://eval.in/398469

我使用了以下语句:

        asort($distanceArray);
        foreach ($distanceArray as $key => $tempDistance) {
            echo "$key = $tempDistance'n";
        }

打印:

2 = 15 3 = 16.1 1 = 21.4 4 = 114.4

谢谢你花时间帮我解答这个问题!