我正在做一个程序。其中有一个数组排序函数,如下所示
$arr= array(10,2,13,5,8);
for($i=0; $i<count($arr)-1; $i++)
{
for($j=0; $j<count($arr)-1; $j++)
{
if($arr[$j]> $arr[$j+1]){
$temp= $arr[$j+1];
$arr[$j+1]= $arr[$j];
$arr[$j]= $temp;
}
}
}
print_r($arr);
这里我使用temp
变量临时存储值。
有没有办法在没有temp
变量的情况下进行排序?
我不想使用任何内置的PHP函数执行此操作
答案 0 :(得分:3)
$arr = array(10,2,13,5,8);
for($i=0; $i<count($arr)-1; $i++)
{
for($j=0; $j<count($arr)-1; $j++)
{
if($arr[$j]> $arr[$j+1]){
list($arr[$j],$arr[$j+1]) = array($arr[$j+1], $arr[$j]);
}
}
}
print_r($arr);
如果它们是整数,则另一种交换方式是
$a = $a + $b;
$b = $a - $b;
$a = $a - $b;
答案 1 :(得分:0)
使用array-sort函数。在我的opion中,没有必要编写另一个数组排序函数。