مرتب کردن آرایه ها در PHP به همراه مثال کاربردی
المان های درون آرایه ها را می توان بر اساس حروف الفبا ، اعداد یا به صورت افزایشی و یا کاهشی مرتب کرد. در این مبحث به معرفی تابع هایی که برای مرتب کردن آرایه ها در PHP استفاده می شود ، می پردازیم.
این توابع به صورت زیر دسته بندی می شوند :
- ()sort : آرایه ها را با روند افزایشی مرتب می کند
- ()rsort : آرایه ها را با روند کاهشی مرتب می کند
- ()asort : آرایه های انجمنی را با روند افزایشی و براساس ارزش آن ها مرتب می کند
- ()ksort : آرایه های انجمنی را با روند افزایشی و بر اساس کلید آن ها مرتب می کند
- ()arsort : آرایه های انجمنی را با روند کاهشی و براساس ارزش آن ها مرتب می کند
- ()krsort : آرایه های انجمنی را با روند کاهشی و براساس کلید ان ها مرتب می کند
مرتب کردن آرایه ها در PHP با روند افزایشی
تابع ()sort
همان طور که گفته شد این تابع برای ایجاد روند افزایشی در آرایه ها است. مثال های زیر به ترتیب افزایش بر اساس حروف الفبا و دومی مثال افزایش بر اساس اعداد است.
<?php
$cars=array("Volvo" ، "BMW" ، "Toyota");
sort($cars);
$clength=count($cars);
for($x=0;$x<$clength;$x++)
{
echo$cars[$x];
echo"<br>";
}
?>
خروجی این دستور بر اساس حروف الفبا به صورت زیر است :
خروجی
BMW
Toyota
Volvo
مثال دوم
<?php
$numbers=array(4،6،2،22،11);
sort($numbers);
$arrlength=count($numbers);
for($x=0;$x<$arrlength;$x++)
{
echo$numbers[$x];
echo"<br>";
}
?>
خروجی
2
4
6
11
22
تابع ()asort
تابع ()asort آرایه های انجمنی را با روند افزایشی و ارزش مرتب می کند. مثال زیر را مشاهده کنید.
<?php
$age=array("Peter"=>"35" ، "Ben"=>"37" ، "Joe"=>"43");
asort($age);
foreach($ageas$x=>$x_value)
{
echo"Key=".$x." ، Value=".$x_value;
echo"<br>";
}
?>
همان طور که در این مثال مشاهده می کنید آرایه ها را براساس ارزش آن ها مرتب کرده است. در این مثال ارزش آرایه همان سن افراد است.
خروجی
Key=Peter ، Value=35
Key=Ben ، Value=37
Key=Joe ، Value=43
تابع () ksort
تابع ()ksort آرایه های انجمنی را با روند افزایشی و کلید مرتب می کند :
<?php
$age=array("Peter"=>"35" ، "Ben"=>"37" ، "Joe"=>"43");
ksort($age);
foreach($ageas$x=>$x_value)
{
echo"Key=".$x." ، Value=".$x_value;
echo"<br>";
}
?>
این مثال همانند مثال قبل است ، با این تفاوت که از تابع ()ksort استفاده شده است و مرتب کردن با توجه به کلید(در اینجا نام افراد است) صورت گرفته است.
خروجی
Key=Ben ، Value=37
Key=Joe ، Value=43
Key=Peter ، Value=35
مرتب کردن آرایه ها در PHP با روند کاهشی
تابع ()rsort
تابع ()rsort آرایه ها را با روند کاهشی مرتب می کند. در مثال زیر المان های آرایه متغیر cars$ بر اساس حروف الفبا و به صورت کاهشی مرتب شده است و مثال دوم اعداد را به صورت کاهشی مرتب می کند.
<?php
$cars=array("Volvo" ، "BMW" ، "Toyota");
rsort($cars);
$clength=count($cars);
for($x=0;$x<$clength;$x++)
{
echo$cars[$x];
echo"<br>";
}
?>
خروجی
Volvo
Toyota
BMW
مثال دوم
<?php
$numbers=array(4،6،2،22،11);
rsort($numbers);
$arrlength=count($numbers);
for($x=0;$x<$arrlength;$x++)
{
echo$numbers[$x];
echo"<br>";
}
?>
خروجی
22
11
6
4
2
تابع ()arsort
مثال زیر آرایه های انجمنی را با روند کاهشی بر اساس ارزش آرایه مرتب می کند. در این مثال از تابع ()arsort استفاده شده است.
<?php
$age=array("Peter"=>"35" ، "Ben"=>"37" ، "Joe"=>"43");
arsort($age);
foreach($ageas$x=>$x_value)
{
echo"Key=".$x." ، Value=".$x_value;
echo"<br>";
}
?>
ارزش آرایه ها در این مثال همان سن افراد است ، که به صورت کاهشی نمایش داده می شود. خروجی به صورت زیر است :
Key=Joe ، Value=43
Key=Ben ، Value=37
Key=Peter ، Value=35
تابع ()krsort
در ادامه مثالی که مشاهده می کنید آرایه ها انجمنی را براساس کلید با روند کاهشی نمایش می دهد.
<?php
$age=array("Peter"=>"35" ، "Ben"=>"37" ، "Joe"=>"43");
krsort($age);
foreach($ageas$x=>$x_value)
{
echo"Key=".$x." ، Value=".$x_value;
echo"<br>";
}
?>
در این مثال کلید آرایه ها ، همان نام افراد است که روند کاهشی آن بر اساس حروف الفبای انگلیسی از p به B ختم می شود. خروجی به صورت زیر است :
Key=Peter ، Value=35
Key=Joe ، Value=43
Key=Ben ، Value=37