簡體   English   中英

按升序對數組值進行排序

[英]Sorting array values in ascending order

我在以下變量中存儲數組值

$weight[$cQ][$post] 

其中$cQ是Index而$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');

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM