[英]How can I sort an array stating in a given number
首先,我是 php 的新手。 我需要幫助來對數組進行排序。
我有一組 ID 和 zip 代碼,如下所示:
Array (
[2286] => 3150-259
[2284] => 3040-256
[2282] => 5430-659
[2280] => 2560-270
[2278] => 3740-271
[2276] => 2495-401 ... and so on
)
現在我有一個數字讓我們說“2900”我想將我的數組從最近的數字(2900)排序到最遠的數字。
示例:數字是 2900。所以數組應該像這樣排序:
Array (
[2284] => 3040-256
[2286] => 3150-259
[2280] => 2560-270
[2276] => 2495-401
[2282] => 5430-659 ... and so on
有人能幫我嗎?
謝謝
我想,你可以使用 function uksort在下一個方式:
<?php
$arr = [
2286 => "3150-259",
2284 => "3040-256",
2282 => "5430-659",
2280 => "2560-270",
2278 => "3740-271",
2276 => "2495-401",
];
$n = 2900;
uksort($arr, function ($a, $b) use ($n) {
return (abs($a-$n) >= abs($b-$n)) ? 1 : -1;
});
var_export($arr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.