簡體   English   中英

在PHP多維數組中使用USORT之后如何添加新密鑰

[英]How add a new a key after using USORT in PHP multidimensional array

我在該數組中有一個數組我想進行ASC排序,之后我要插入新的列rank然后它的值將像1,2,3一樣增加...

我的陣列

$mainArray = [
    "key1" => ["name" => "A", "price" => 5],
    "key2" => ["name" => "B", "price" => 7],
    "key3" => ["name" => "C", "price" => 2],
];

我的密碼

usort($mainArray, function($a, $b) {
                return $a['price'] <=> $b['price'];
 });
echo "<pre>";
print_r($mainArray);

我正在輸出

Array
(
    [0] => Array
        (
            [name] => C
            [price] => 2
        )

    [1] => Array
        (
            [name] => A
            [price] => 5
        )

    [2] => Array
        (
            [name] => B
            [price] => 7
        )

)

預期產量

Array
(
    [0] => Array
        (
            [name] => C
            [price] => 2
            [rank] => 1
        )

    [1] => Array
        (
            [name] => A
            [price] => 5
            [rank] => 2
        )

    [2] => Array
        (
            [name] => B
            [price] => 7
            [rank] => 3
        )

)

由於數組已經排序並重新索引,因此rank值只是鍵加1。foreach循環將完成您想要的操作:

foreach ($mainArray as $k => &$v) {
    $v['rank'] = $k + 1;
}

3v4l.org上的演示

暫無
暫無

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

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