Php 按升序排序数组值

Php 按升序排序数组值,php,arrays,Php,Arrays,我将数组值存储在以下变量中 $weight[$cQ][$post] 其中,$cQ是索引,$post是文章ID,我在数组中存储评级值 我使用了sort($weight[$cQ][$post])PHP函数进行升序。但它不是对数组值排序。。对数组升序排序有什么好的解决方案吗 Array ( [0] => Array ( [948] => 0.0086665 ) [1] => Array (

我将数组值存储在以下变量中

$weight[$cQ][$post] 
其中,
$cQ
是索引,
$post
是文章ID,我在数组中存储评级值

我使用了
sort($weight[$cQ][$post])
PHP函数进行升序。但它不是对数组值排序。。对数组升序排序有什么好的解决方案吗

Array
(
    [0] => Array
        (
            [948] => 0.0086665
        )

    [1] => Array
        (
            [934] => 0.0119
        )

    [2] => Array
        (
            [932] => 0.0176
        )

    [3] => Array
        (
            [931] => 0.0125
        )

    [4] => Array
        (
            [940] => 0.0148
        )

    [5] => Array
        (
            [930] => 0.01235
        )

    [6] => Array
        (
            [933] => 0.01715
        )

    [7] => Array
        (
            [936] => 0.0168
        )

    [8] => Array
        (
            [945] => 0.0117665
        )
)
使用以下命令:

根据示例数组,它假定每个数组只有一个元素。如果有多个,请相应地修改它

function cmp( $a, $b ) {
    $key1 = array_keys( $a ); // all array keys in first array
    $key2 = array_keys( $b ); // all array keys in second array

    if ( $a[ $key1[ 0 ] ] == $b[ $key2[ 0 ] ] ) {
        return 0;
    }
    return ( $a[ $key1[ 0 ] ] < $b[ $key2 [ 0 ] ] ) ? -1 : 1;
}

uasort($weight, 'cmp');
函数cmp($a,$b){
$key1=数组_键($a);//第一个数组中的所有数组键
$key2=数组_键($b);//第二个数组中的所有数组键
如果($a[$key1[0]]==b[$key2[0]])){
返回0;
}
返回($a[$key1[0]]<$b[$key2[0]])?-1:1;
}
uasort($weight,'cmp');

希望这有帮助。

不应该是
排序($weight[$cQ])?好的,我使用了排序($weight[$cQ][$post]),仍然没有输出<代码>asort($weight[$cq][$post])
?@user2345691查看下面的答案。无法重新声明cmp()(以前声明将其重新命名为其他内容。您的代码中可能有一个名为
cmp
的函数。