怎么让一个一维数组先按元素值排序,然后再按键值排序呢?
解决方案 »
- PHPOA中SWF文件上传播放问题,为什么就是播不了?问题在哪?
- 太奇怪了 酷六网站支持站外上传? 为何这个网站可以,而且自动返回缩略图地址和视频地址
- 购物车类设计
- 如何根据一个模板生成多个页面呢
- 利用cookies做登陆验证为什么刷新一次才显示?
- 女朋友大三了,想考个计算机方面证书,大家推荐一下吧!谢谢大家捧场
- 很奇怪的问题,为什么strlen($idcard)不能输出长度。
- Uncaught exception 'ImagickException' with message 'UnableToOpenFile `
- 如何使用php添加qmail用户
- 请问如何配置php.ini中的sendmail_path(unix)?
- rewrite重定位问题(急)
- 高分求助如何用curl提交COOKIE
怎么调整,交换元素的位置?
a[]=array(1=>23,2=>45,....)一共10个元素
for(i:=1;i<10;i++)
{
for(j:=i+1;j<=10;j++)
{
if(a[i]<a[j]) //中间比较的运算符决定了从大到小还是从小到大
{
交换a[i]和a[j]的值;
}
}
}
print_r(a);
$a=array(1=>23,2=>45,3=>15,4=>155,5=>15,6=>115,7=>15);//一共10个元素
for($i=1;$i<10;$i++)
{
for($j=$i+1;$j<=10;$j++)
{
if($a[$i]<$a[$j]) //中间比较的运算符决定了从大到小还是从小到大
{
$t=$a[$i];
$a[$i]=$a[$j];
$a[$j]=$t;
//交换a[i]和a[j]的值;
}
}
}
print_r($a);
?>
function _sort($arr)
{
$tmp = "";
$count = count($arr);
for ($i=0;$i<$count;$i++)
{
for ($j=$count-1;$j>$i;$j--)
{
if ($arr[$j-1] > $arr[$j])
{
$tmp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $tmp;
}
}
}
return $arr;
}
function paixu($n)
{
if (empty($n) || !is_array($n)) {
return false;
}
$len = count($n);
if ($len == 1) {
return $n;
}
for ($i=0; $i<$len; $i++) {
$key = $n[$i];
for ($j=$i+1; $j<$len; $j++) {
if ($n[$j] < $key) {
$temp = $key;
$key = $n[$j];
$n[$j]= $temp;
}
}
$n[$i] = $key;
}
return $n;
}
$a=array(23,45,15,155,15,115,15);
print_r (paixu($a));
?>
Array ( [0] => 15 [1] => 15 [2] => 15 [3] => 23 [4] => 45 [5] => 115 [6] => 155 )
数组加索引抛出错误,如果是单纯的数字当然是asort()比较快解决,但如果是array("zz23","zg45","zf15","zl155","zz15","zz115","zz15")这样的数组还能用asort吗?
_sort去掉数组中的索引正确的,下面这个随手写的。