مرتب سازی آرایه های چند بعدی با استفاده از اندیس خاص (sort array)

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

تابع زیر آرایه مورد نظر را با توجه به اندیس ورودی مرتب سازی می کند. ورودی اول مربوط به آرایه , ورودی دوم مربوط به اندیس ای است که باید بر اساس آن مرتب سازی صورت گیرد و بخش سوم صعودی یا نزولی بودن ترتیب نتایج است(SORT_ASC, SORT_DESC). به مثالها توجه کنید:

function array_sort($array, $on, $order = SORT_ASC)
{
    $new_array = array();
    $sortable_array = array();
    if (count($array) > 0)
    {
        foreach ($array as $k => $v)
        {
            if (is_array($v))
            {
                foreach ($v as $k2 => $v2)
                {
                    if ($k2 == $on)
                    {
                        $sortable_array[$k] = $v2;
                    }
                }
            } else
            {
                $sortable_array[$k] = $v;
            }
        }
        switch ($order)
        {
            case SORT_ASC:
                asort($sortable_array);
                break;
            case SORT_DESC:
                arsort($sortable_array);
                break;
        }
        foreach ($sortable_array as $k => $v)
        {
            $new_array[$k] = $array[$k];
        }
    }
    return $new_array;
}

مثال:

$people = array(
    12345 => array(
        'id' => 12345,
        'first_name' => 'Joe',
        'surname' => 'Bloggs',
        'age' => 23
    ),
    12346 => array(
        'id' => 12346,
        'first_name' => 'Adam',
        'surname' => 'Smith',
        'age' => 18
    ),
    12347 => array(
        'id' => 12347,
        'first_name' => 'Amy',
        'surname' => 'Jones',
        'age' => 21
    )
);

print_r(array_sort($people, 'age', SORT_DESC)); // Sort by oldest first
print_r(array_sort($people, 'surname', SORT_ASC)); // Sort by surname

خروجی مثال:

/*
Array
(
    [12345] => Array
        (
            [id] => 12345
            [first_name] => Joe
            [surname] => Bloggs
            [age] => 23
        )
 
    [12347] => Array
        (
            [id] => 12347
            [first_name] => Amy
            [surname] => Jones
            [age] => 21
        )
 
    [12346] => Array
        (
            [id] => 12346
            [first_name] => Adam
            [surname] => Smith
            [age] => 18
        )
 
)
Array
(
    [12345] => Array
        (
            [id] => 12345
            [first_name] => Joe
            [surname] => Bloggs
            [age] => 23
        )
 
    [12347] => Array
        (
            [id] => 12347
            [first_name] => Amy
            [surname] => Jones
            [age] => 21
        )
 
    [12346] => Array
        (
            [id] => 12346
            [first_name] => Adam
            [surname] => Smith
            [age] => 18
        )
 
)
*/

مرجع: php.net

برچسبها

هیچ برچسبی موجود نیست.

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

تابع گرفتن نام اصلی فایل از URL...

گاهی براحتی میتوان از یک آدرس اینترنتی متصل به یک فایل ، نام فایل را براحتی بدست آورد اما در وب جدید بدلایل دستکاری URLها برای سئو ، به خاطر سپاری راحتتر و سایر موارد نمیتوان از آدرس مورد نظر نام فایل...

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

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

شناسایی اعداد از متن یونیکد...

روشهای رایج همگی جهت شناسایی اعداد یک رشته روش زیر را پیشنهاد میکنند......

تابع ()ceil در php...

تابع ()ceil عدد ورودی را به بزرگترین عدد صحیح گرد می کند. برای فهم بیشتر از کاربرد تابع ، مثالهای زیر را ببینید......

نظر

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