PDA

View Full Version : uasort



mhkyazd
جمعه 23 مهر 1389, 23:05 عصر
با سلام و خسته نباشید
می خواستم ببینم این تابع چی کار میکنه
<?php
function my_sort($a, $b)
{
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}

$people = array("Swanson" => "Joe",
"Griffin" => "Peter", "Quagmire" => "Glenn",
"swanson" => "joe", "griffin" => "peter",
"quagmire" => "glenn");

uasort($people, "my_sort");

print_r ($people);
?>
به خصوص اونجایی که 0 و 1 و -1 برگشت داده میشه چه اتفاقی میفته
و دوتا ورودی تابع از کجا گرفته می شوند
ممنون

funpatogh
شنبه 24 مهر 1389, 00:05 صبح
function my_sort($a, $b)
{
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}

این تابع دقیقا کار این تابع


echo strcmp($a,$b);
رو انجام میدهد یعنی 2 تا مقدار رو با هم بررسی میکنه اگر دقیقا مثل هم بودند 0 برمی گردونه اگر اولی از دومی بزرگتر باشه -1 بر میگردونه و اگر دومی از اولی بزرگتر باشه 1 بر میگردونه این تابع به حروف کوچک و بزرگ هم حساس می باشد
تابع دیگری که همین کارو انجام میدهد اما به حروف کوچک و بزرگ حساس نیست


strcasecmp($a,$b);
می باشد
رشته salam و Salam رو در نظر بگیرید با تابع اولی -1 بر میگردونه اما با تابع دومی 0 بر میگردونه

mhkyazd
دوشنبه 26 مهر 1389, 00:44 صبح
function my_sort($a, $b)
{
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}

این تابع دقیقا کار این تابع


echo strcmp($a,$b);
رو انجام میدهد یعنی 2 تا مقدار رو با هم بررسی میکنه اگر دقیقا مثل هم بودند 0 برمی گردونه اگر اولی از دومی بزرگتر باشه -1 بر میگردونه و اگر دومی از اولی بزرگتر باشه 1 بر میگردونه این تابع به حروف کوچک و بزرگ هم حساس می باشد
تابع دیگری که همین کارو انجام میدهد اما به حروف کوچک و بزرگ حساس نیست


strcasecmp($a,$b);
می باشد
رشته salam و Salam رو در نظر بگیرید با تابع اولی -1 بر میگردونه اما با تابع دومی 0 بر میگردونه

با تشکر از شما دوست عزیز:قلب: