1. 在php中,比较三个数大小,由小到大排列
$a=3;$b=2;$c=1;function compare(&$x,&$y){ if($x>$y){ $temp=$y; $y=$x; $x=$temp; }}compare($a,$b);// a,b中 小的值存在a,大的值存在bcompare($a,$c);// a,c中 小的值存在a,大的值存在c //到这一步 a中值最小compare($b,$c);// b,c中 小的值存在b,大的值存在c //到这一步 c中值最大echo "{$a}<{$b}<{$c}";
2. php数组排序通过id键小到大排
首先要纠正一个问题,'a'=>aa这个写法是错误的,aa是字符串,一定要要上引号('a'=>'aa')。
这个排序很简单,只需要用到php的两个函数。
1、我先合并数组 array_merge();
$arr[0]=array('id'=>2,'a'=>'aa');
$arr[1]=array('id'=>1,'a'=>'aa');
$arr[2]=array('id'=>3,'a'=>'aa');
$arr=array_merge($arr);//合并数组
2、按数字从小到大排序 sort();
sort($arr);//进行排序
3、最后得到的数据如下:
Array
(
[0] => Array
(
[id] => 1
[a] => aa
)
[1] => Array
(
[id] => 2
[a] => aa
)
[2] => Array
(
[id] => 3
[a] => aa
)
)
3. PHP For 循环 怎么能把 数组 从小到大排列呢
用非常典型的冒泡排序即可实现,具体实现思路如下列代码所示:
<?php
//首先定义一个数组;
$arr=array(100,23,69,2,50,31);
//计算数组的长度;
$length=count($arr);
//外层循环n-1
for($n=0;$n<$length-1;$n++){
//内层循环n-i-1
for($i=0;$i<$length-$n-1;$i++){
//判断数组元素大小,交换位置,实现从小往大排序
if($arr[$i]>$arr[$i+1]){
$temp=$arr[$i+1];
$arr[$i+1]=$arr[$i];
$arr[$i]=$temp;
}
}
}
print_r($arr);
//Array([0]=>2[1]=>23[2]=>31[3]=>50[4]=>69[5]=>100)
?>
4. 鐢≒HP缂栧啓绋嫔簭 链変竴涓鏁扮粍$arr=array(4,3,8,9,2),灏嗗叾鎸変粠灏忓埌澶х殑椤哄簭閲嶆柊鎺掑簭
<?php
$array=array(4,3,8,9,2);
sort($array);
echo "镙囧嗳鎺掑簭\n";
for($i=0;$i<count($array);$i++){
echo $array[$i];
}
natsort($array);
echo "\n镊铹舵帓搴\n";
for($i=0;$i<count($array);$i++){
echo $array[$i];
}
?>
缁撴灉濡备笅锛
镙囧嗳鎺掑簭 23489 镊铹舵帓搴 23489
5. 镐庝箞浣跨敤php瀵规暟缁勬帓搴忥纻
1銆佹柊寤轰竴涓163.php銆
6. PHP实现常见的排序算法
注:为方便描述,下面的排序全为正序(从小到大排序)
假设有一个数组[a,b,c,d]
冒泡排序依次比较相邻的两个元素,如果前面的元素大于后面的元素,则两元素交换位置;否则,位置不变。具体步骤:
1,比较a,b这两个元素,如果a>b,则交换位置,数组变为:[b,a,c,d]
2,比较a,c这两个元素,如果a<c,则位置不变,数组变为:[b,a,c,d]
3,比较c,d这两个元素,如果c>d,则交换位置,数组变为:[b,a,d,c]
完成第一轮比较后,可以发现最大的数c已经排(冒)在最后面了,接着再进行第二轮比较,但第二轮比较不必比较最后一个元素了,因为最后一个元素已经是最大的了。
第二轮比较结束后,第二大的数也会冒到倒数第二的位置。
依次类推,再进行第三轮,,,
就这样最大的数一直往后排(冒),最后完成排序。所以我们称这种排序算法为冒泡排序。
选择排序是一种直观的算法,每一轮会选出列中最小的值,把最小值排到前面。具体步骤如下:
插入排序步骤大致如下:
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。
步骤:
从数列中挑出一个元素,称为 “基准”(pivot),
重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
7. 输入5个数,按从大到小排序,用php动态页面实现。
<p>请输入要排序的数据</p>
<form id="form1" name="form1" method="post" action="">
<input name="textfield" type="text" id="textfield" size="15" maxlength="15" />
-
<input name="textfield2" type="text" id="textfield2" size="15" />
-
<input name="textfield3" type="text" id="textfield3" size="15" />
-
<input name="textfield4" type="text" id="textfield4" size="15" />
-
<input name="textfield5" type="text" id="textfield5" size="15" />
<input type="submit" name="button" id="button" value="提交" />
</form>
<?
if(isset($_POST['button'])){
echo "排序后的数据如下所示:";
echo '<br/>';
$array=array(
"0"=>$_POST['textfield'],
"1"=>$_POST['textfield2'],
"2"=>$_POST['textfield3'],
"3"=>$_POST['textfield4'],
"4"=>$_POST['textfield5'],);//把数字存到数组中
sort($array);//php函数排序从小到大
foreach($array as $key => $value){
echo $value;//循环输出值
echo '<br/>';
}
}
?>
8. 用php定义一个数组,要求把数组从大到小排序并输出
array_multisort()函数是PHP中最有用的函数之一,它有非常广泛的应用范围。另外,就如你在例子中所看到的,它能对多个不相关的数组进行排序,也可以使用其中的一个元素作为下次排序的基础,还可以对数据库结果集进行排序。