簡體   English   中英

如何對以給定數字表示的數組進行排序

[英]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);

在此處檢查 PHP 代碼

暫無
暫無

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

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