我有一個看起來像這樣的數組:$array = array( '5' => 2, '6' => 3, '7' => 10, '8' => 1); 我希望它看起來像這樣:$array = array( '5' => 1, '6' => 2, '7' => 3, '8' => 10);鍵應保持不變,但值應按升序排列。sort()鍵將被刪除并替換為從 0 開始的鍵。將asort()按照我想要的方式對值進行排序,但它將保持鍵關聯。我嘗試過sort(),但這些似乎都不是我需要的排序功能usort()。asort()我必須手動排序還是有可以使用的功能?
2 回答

慕萊塢森
TA貢獻1810條經驗 獲得超4個贊
您可以使用 提取數組的鍵array_keys
,使用 對值進行排序sort
,然后使用 將鍵與排序后的值組合起來array_combine
:
$array = array(
'5' => 2,
'6' => 3,
'7' => 10,
'8' => 1
);??
$keys = array_keys($array);
sort($array);
$array = array_combine($keys, $array);
print_r($array);
輸出:
Array
(
? ? [5] => 1
? ? [6] => 2
? ? [7] => 3
? ? [8] => 10
)
- 2 回答
- 0 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消