6.13 数组小结

6.13 数组小结

本章最后来做一个实例:
这个例子也是我一次面试的一道题目
综合实例: 要求写一个函数将一个数组 array(8,2,6,7,1,4,0) 从小到大排列,
不能用php内置的排序函数,必须自己写.

/*********************************************
* PHPfans系列教程:
* http://www.phpfans.net/bbs/forumdisplay.php?fid=25
* 作 者: 我不是鱼
* Email:[email protected]
* 博 客:  http://www.phpfans.net/space/?2
*********************************************/

大家先做一下,下面是两个参考程序

[复制到剪切板]
CODE:
<?php 
$array 
= array(8,2,6,7,1,4,0);//创建数组

function array_sort($arr){
    
$arrlen count($arr);//计算数组长度
    
$new_arr = array();
    for(
$i=0;$i<$arrlen;$i++){
        foreach(
$arr as $key => $value){//遍历数组
            
if(!isset($indexmin)) {
                
$indexmin $value;//数组第一个元素直接赋值给当前最小值
                
$indexkey $key;
            }
            else{
                if(
$value $indexmin) {
                    
$indexmin $value;//有比当前最新值更小的话交换
                    
$indexkey $key;
                }
            }    
        }
        
$new_arr[] = $indexmin;//数组赋值
        
unset($arr[$indexkey],$indexmin);//注销变量
    
}
    return 
$new_arr;
}

$new_arr array_sort($array);

print_r($new_arr);//打印数组
?> ;

其实冒泡法可以更简单点

[复制到剪切板]
CODE:
<?php 
//PHPfans站系列教程:
//http://www.phpfans.net/bbs/forumdisplay.php?fid=25
$array = array(8,2,6,7,1,4,0);

function 
array_sort($arr){ 
    
$arrlen count($arr); 
    for(
$i=0;$i<$arrlen;$i++){ 
        for(
$j=$arrlen-1;$j>$i;$j--){ 
            if (
$arr[$j] < $arr[$j-1]){ 
                
$tmp $arr[$j]; 
                
$arr[$j] = $arr[$j-1]; 
                
$arr[$j-1] = $tmp
            } 
        } 
    } 
    return 
$arr


$new_arr array_sort($array);
print_r($new_arr);
?> ;


不过这个例子是不是不能对字符关联键的数组排序二第一个例子能呢?
如果大家有很好的算法或用了其他算法的也可以拿出来讨论.

好了,忙了好几天,这一章终于完成了,我也从中学到了不少,希望对大家有用.谢谢.
数组中还有其它一些函数和知识,希望大家继续学习,也希望大家拿出来分享,共同进步.
如履薄冰

我不是鱼 现在有斑竹空缺职位吗?

我不是鱼 现在有斑竹空缺职位吗? 我想过来..
本网站听好的

都招人啊。看你喜欢哪个版
如履薄冰

php模板 | MySQL | Linux

这三个中的一个也可以,PHP基础也可以,因为本人就从事PHP工作2年.

但是对PHP了解不是甚深,所以想多学习学习

但是对PHP了解不是甚深,所以想多学习学习