مرتب سازی آرایه های چند متغیری و چند بعدی در php

۳ سال پیش(به روز شده در ۳ سال پیش) پی اچ پی(PHP)(توابع) ۰

تابع زیر مرتب سازی یک آرایه را با چندین مقدار برای هر ایندکس و آرایه چند بعدی را با اعمال محدودیت انجام میدهد. میتوانید با اندکی تغییر آنرا پیشرفته تر کنید!

function subval_sort($arr, $subkey, $lim = 0) {
    foreach ($arr as $k => $v) {
        $tmp[$k] = strtolower($v[$subkey]);
    }
 
    //arsort($tmp); مرتب سازی صعودی به نزولی
    asort($tmp);
 
    $i = 0;
    foreach ($tmp as $key => $val) {
        $res[] = $arr[$key];
        $i++;
 
        if ($i == $lim) {
            break;
        }
    }
 
    return $res;
}

مثال:

$arr = array(
    array('id' => 7, 'title' => 'text7'),
    array('id' => 6, 'title' => 'text6'),
    array('id' => 9, 'title' => 'text9'),
    array('id' => 1, 'title' => 'text1'));
$arr = subval_sort($arr, 'id', 2);
print_r($arr)

خروجی:

Array
(
    [0] => Array
        (
            [id] => 1
            [title] => text1
        )
    [1] => Array
        (
            [id] => 6
            [title] => text6
        )
)

منبع کمکی

صفحات پیشنهادی

گرفتن زیرمجموعه های شناسه یک آرایه از کل آرایه به صورت تو در تو...

مدتی قبل برای گروه ما در یکی از پروژه ها به تابعی نیاز شد که هر چند جز کدهای ساده ایست اما کارهای بزرگی انجام میدهد. تابع زیر تمامی زیرمجموعه های یک شناسه بصورت تو در تو رو را شناسایی میکند. برای درک ...

تابع تبدیل تاریخ(TimeStamb) به فرمت دلخواه...

این تابع تاریخ با فرمت TimeStamb را به فرمت دلخواه تبدیل می نماید. function changeTimeStamp( $date, $dateOutput ) { $year = substr( $date, 0, 4 ); $month = substr( $date, 5, 2 ); $day = subst...

تابع بررسی صحت شماره تلفن...

با استفاده از تابع زیر صحت فرمت شماره تلفن بررسی و در صورت صحیح بودن مقدار True را بر می‌گرداند. function is_valid_phone( $phone ) // goal: chek if a phone numbers is valid, according to its syn...

توابع رمزگذاری و رمزگشایی یک رشته با خروجی‌های متفاوت...

دو تابع encrypt و decrypt به ترتیب مربوط به رمزگذاری و رمزگشایی می باشند. اما تفاوتی که با حالت معمول دارند این است که خروجی تابع encrypt برای یک مقدار با هر بار فراخوانی متفاوت است. این ویژگی قطعا در...

نظر

نظری ثبت نشده است.