مرتب سازی آرایه های چند متغیری و چند بعدی در 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
        )
)

منبع کمکی

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

محاسبه زمان اجرای یک کد(زمان‌سنج) در php...

بسیار پیش می آید تا مدت زمان اجرای یک تکه کد را بدانیم. دو تابع زیر برای حل این مسئله به کمک شما می آیند و مثال مربوطه نیز نحوه استفاده از این دو تابع را کاملا مناسب بیان نموده است. کارکرد توابع آسان ...

نسخه بهتر شده تابع parse_str در php...

در تابع ()parse_str تبدیل آرایه ها بدرستی انجام نمیشود به همین خاطر نیاز هست تا تابع قدرتمندتری استفاده نمود. تابع معرفی شده بصورت کامل یک رشته کوئری ورودی را به متغیرها و آرایه ها تبدیل میکند و به نو...

تعریف تابع در تابع...

برای فراخوانی تابعی که در درون تابع دیگر ایجاد شده است باید ابتدا تابع پدر فراخوانی شود و سپس تابع فرزند قابل دسترس خواهد بود. مثال: function foo() { function bar() { echo "Hello World!"; ...

تابع کنترل اطلاعات ورودی برای جلوگیری از تزریق به پایگاه داده...

ورودی‌ها همیشه باید کنترل شوند تا از خطراتی نظیر SQL Injection در امان بود. یک روش ساده و قوی برای این کار وجود دارد که خود وب سایت PHP آنرا توصیه نموده است. هر چند که شما می ...

نظر

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