مرتب کردن آرایه‌ها در PHP

sorting-array

المان های درون آرایه ها را می‌توان بر اساس حروف الفبا، اعداد  یا به صورت افزایشی و یا کاهشی مرتب کرد. در این مبحث به معرفی تابع هایی که برای مرتب کردن آرایه‌ها در PHP استفاده می‌شود، می‌پردازیم.

این توابع به صورت زیر دسته بندی می‌شوند:

  • ( )sort : آرایه ها را با روند افزایشی مرتب می‌کند
  • ( )rsort : آرایه ها را با روند کاهشی مرتب می‌کند
  • ( )asort : آرایه های انجمنی را با روند افزایشی و براساس ارزش آن ها مرتب می‌کند
  • ( )ksort : آرایه های انجمنی را با روند افزایشی و بر اساس  کلید آن ها مرتب می‌کند
  • ( )arsort : آرایه های انجمنی را با روند کاهشی و براساس ارزش آن ها مرتب می‌کند
  • ( )krsort :آرایه های انجمنی را با روند کاهشی و براساس کلید ان ها مرتب می‌کند

مرتب کردن آرایه‌ها در PHP با روند افزایشی

تابع ( )sort

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

خروجی این دستور براسا حروف الفبا به صورت زیر است:

BMW
Toyota
Volvo

۲٫

خروجی این دستور براساس روند افزایشی اعداد به صورت زیر است:

۲
۴
۶
۱۱
۲۲

 تابع ( )asort

تابع ( )asort آرایه های انجمنی را با روند افزایشی و ارزش مرتب می‌کند. مثال زیر را مشاهده کنید.

همان طور که در این مثال مشاهده می‌کنید آرایه ها را براساس ارزش آن ها مرتب کرده است. در این مثال ارزش آرایه همان سن افراد است. خروجی این دستور :

Key=Peter, Value=35
Key=Ben, Value=37
Key=Joe, Value=43

تابع ( ) ksort

تابع ( )ksort آرایه های انجمنی را با روند افزایشی و کلید مرتب می‌کند:

این مثال همانند مثال قبل است، با این تفاوت که از تابع ( )ksort استفاده شده است و مرتب کردن با توجه به کلید( در اینجا نام افراد است) صورت گرفته است. خروجی این مثال :

Key=Ben, Value=37
Key=Joe, Value=43
Key=Peter, Value=35

مرتب کردن آرایه‌ها در PHP با روند کاهشی

 تابع ( )rsort

تابع ( )rsort آرایه ها را با روند کاهشی مرتب می‌کند. در مثال زیر المان های آرایه متغیر cars$ بر اساس حروف الفبا و به صورت کاهشی مرتب شده است و مثال دوم اعداد را به صورت کاهشی مرتب می‌کند.

خروجی این مثال:

Volvo
Toyota
BMW

۲٫

خروجی این مثال :

۲۲
۱۱
۶
۴
۲

تابع ( )arsort

مثال زیر آرایه های انجمنی را با روند کاهشی بر اساس ارزش آرایه مرتب می‌کند. در این مثال از تابع ( )arsort استفاده شده است.

ارزش آرایه ها در این مثال همان سن افراد است، که به صورت کاهشی نمایش داده می‌شود. خروجی به صورت زیر است:

Key=Joe, Value=43
Key=Ben, Value=37
Key=Peter, Value=35

تابع ( )krsort

در ادامه مثالی که مشاهده می‌کنید آرایه ها انجمنی را براساس کلید با روند کاهشی نمایش می‌دهد

در این مثال کلید آرایه ها، همان نام افراد است که روند کاهشی آن بر اساس حروف الفبای انگلیسی از p به B ختم می‌شود. خروجی به صورت زیر است:

Key=Peter, Value=35
Key=Joe, Value=43
Key=Ben, Value=37

4 نظرات شما

  • behzad

    آبان ۱۱, ۱۳۹۲ at ۶:۳۸ ب.ظ
    با سلام خدمت شما راستش من یه مدتیه که با زبان php برنامه نویسی وب رو شروع کردم و دنبال منبعی بودم که راحت و روون php رو آموزش بده برای همین هم داخل موتور گوگل همیشه دنبال مطالب و وب سایت هایی بودم که بتونم این منبع خوب رو پیدا کنم که با وب سایت شما آشنا شدم - وب سایت شما ظاهر زیبا و ساده ای داشت برای همین هم برای بار اول مجذوب سایت شدم وقتی بیشتر قسمت آموزش رو دنبال کردم فهمیدم که این همون منبع خوبه - البته خودتون جایی از مطالب ذکر کردین که مطالب ترجمه سایت w3 هست ولی به نظر من ترجمه بسیار خوب و روون شما باعث میشه که یادگیری مطالب بسیار راحت باشه . با تشکر و درود فراوان - بهزاد
    • بهاران بنی اسدی

      آبان ۱۱, ۱۳۹۲ at ۷:۲۴ ب.ظ
      سلام از نظرتون ممنونم. امیدوارم که مطالب سایت براتون مفید باشه. شما میتوانید با نظرتون و سوالاتتون در بهتر شدن سایت مبتدی کمک کنید. همچنین در راستای یادگیری من هم کمک خواهید کرد.
  • behzad

    آبان ۱۹, ۱۳۹۲ at ۱۱:۳۴ ق.ظ
    با سلام خدمت شما می خواستم یک سوال درباره مرتب کردن آرایه های بپرسم و اونم اینکه دراولین تابع یعنی sort چرا وقتی که این دستور رو داخل یک ide می نویسم و اجرا می کنم خروجی نداره البته قسمت دوم رو نمی نویسم منظورم قسمت حلقه و این که چرا حلقه رو بعد از دستور sort می نویسید دلیلش رو می خواستم ذکر کنید راستش متوجه نمی شم . با تشکر
    • بهاران بنی اسدی

      آبان ۲۰, ۱۳۹۲ at ۹:۱۷ ق.ظ
      سلام در حقیقت تابع شما کار کرده است اما به دلیل ننوشتن حلقه خروجی ای مشاهده نکرده اید. نوشتن حلقه برای گرفتن خروجی است. تابع sort بدون نوشتن حلقه نیز کار میکند اما خروجی تنها با نوشتن حلقه نمایش داده میشود.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


© 2013 Mobtadi. All rights reserved.
کلیه حقوق مادی و معنوی برای وبسایت مبتدی محفوظ است.