PDA

View Full Version : مبتدی: مشکل در نوشتن تابع sort



cloner11
دوشنبه 30 دی 1392, 14:13 عصر
سلام من کد زیر رو نوشتم ولی جواب اشتباه میده!



$y=array(1,2,8,4,6);
$y=mysort($y);
print_r($y);

function mysort($x)
{
for($i=0;$i<count($x);$i++)
{
for($j=$i+1;$j<count($x);$j++)
{
if($X[$i]>$x[$j])
{
$cloner=$x[$i];
$x[$i]=$x[$j];
$x[$j]=$cloner;
}
}
}
return $x;

}

sh.n.n786
دوشنبه 30 دی 1392, 15:55 عصر
function mysort($x)
{
$cnt = count($x);
for($i = 0; $i < $cnt;$i++)
{
for($j = $i; $j < $cnt; $j++)
{
if($x[$i] > $x[$j])
{
$cloner = $x[$i];
$x[$i] = $x[$j];
$x[$j] = $cloner;
}
}
}
return $x;
}

MMSHFE
سه شنبه 01 بهمن 1392, 07:47 صبح
البته یک راه دیگه هم برای تعریف تابع شخصی برای مرتب کردن آرایه ها وجود داره (تابع usort). مثال میگذارم اگه متوجه نشدین بگین توضیح بدم:


<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?>

مثال بعدی:


<?php
function cmp($a, $b)
{
return strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits, "cmp");

while (list($key, $value) = each($fruits)) {
echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>

منبع (http://ir1.php.net/manual/en/function.usort.php)