PDA

View Full Version : مرتب کردن ارایه ها بر اساس یکی از خانه ها



saeed-71
جمعه 21 آذر 1393, 08:55 صبح
سلام.
من یه ارایه دارم که نام استان و تعداد اون داخلش قرار دادره.میخوام به صورت نزولی بر اساس تعدادش مرتب کنم.چجوریه؟بر اساس ostan_det['num']


$ostan_det = array();
$ostan_det['num'] = $this->Read_Count_Rows_ads(NULL, NULL, NULL, NULL, $rows['id'], NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
$ostan_det['name'] = $rows['name'];
print_r($ostan_det);


Array
(
[num] => 1
[name] => تهران
)
Array
(
[num] => 1
[name] => کرمان
)
Array
(
[num] => 0
[name] => اصفهان
)
Array
(
[num] => 0
[name] => البرز
)
Array
(
[num] => 0
[name] => فارس
)
Array
(
[num] => 0
[name] => خراسان رضوی
)
Array
(
[num] => 0
[name] => اذربایجان شرقی
)
Array
(
[num] => 0
[name] => مازندران
)
Array
(
[num] => 0
[name] => کرمانشاه
)
Array
(
[num] => 0
[name] => همدان
)
Array
(
[num] => 0
[name] => گیلان
)
Array
(
[num] => 0
[name] => خوزستان
)
Array
(
[num] => 0
[name] => گلستان
)
Array
(
[num] => 0
[name] => قزوین
)
Array
(
[num] => 0
[name] => مرکزی
)
Array
(
[num] => 0
[name] => اذربایجان غربی
)
Array
(
[num] => 0
[name] => قم
)
Array
(
[num] => 0
[name] => کردستان
)
Array
(
[num] => 0
[name] => اردبیل
)
Array
(
[num] => 0
[name] => هرمزگان
)
Array
(
[num] => 0
[name] => بوشهر
)
Array
(
[num] => 0
[name] => یزد
)
Array
(
[num] => 0
[name] => زنجان
)
Array
(
[num] => 0
[name] => سمنان
)
Array
(
[num] => 0
[name] => لرستان
)
Array
(
[num] => 0
[name] => چهارمحال بختیاری
)
Array
(
[num] => 0
[name] => خراسان شمالی
)
Array
(
[num] => 0
[name] => خرسان جنوبی
)
Array
(
[num] => 0
[name] => ایلام
)
Array
(
[num] => 0
[name] => کهکیلویه و بویراحمد
)
Array
(
[num] => 0
[name] => سیستان و بلوچستان
)

***BiDaK***
جمعه 21 آذر 1393, 09:16 صبح
usort($myArray, function($a, $b)
{
return $a['num'] - $b['num'];
});


print_r(array_reverse($myArray));

saeed-71
جمعه 21 آذر 1393, 10:15 صبح
ممنون ولی چیزی نفهمیدم

***BiDaK***
جمعه 21 آذر 1393, 10:51 صبح
یه فانکشن بصورت callback میگیره و مقایسه انجام میده.
اگر مقدار اول کوچیکتر از دومی باشه عدد منفیه و اگر برابر باشه برابر صفر و اگر بزرگتر باشه مقدار مثبت برمیگردونه(دو مقدار جابجا میشن) , اینجوری sort میکنه بصورت صعودی.