php数组排序算法新手练习

发布时间:2019-11-29编辑:脚本学堂
本文介绍了php数组排序算法的二个例子,作为php新手收集的php数组排序的代码,自定义函数实现数组排序,需要的朋友参考下。

在没有php数组排序函数的情况下,如何用自定义函数对php数组实现排序呢?

题目要求:
用给出的数组对数组进行排序,升序倒序都可以。
但不能用系统附带的函数来实现,要自己写一函数来实现,比如PHP不能用asort()或ksort()等...有关数组排序的都不能用...

例子:
 

复制代码 代码示例:
$array = array('one'=>200, 'three'=>150, 'four'=>100, 'two'=>230);
$ka=array_keys($array);
$count=count($ka);
for($i=0;$i<$count-1;$i++){
    for($j=0;$j<$count-$i-1;$j++){
        if($array[$ka[$j]]>$array[$ka[$j+1]]){
            $temp=$ka[$j];
            $ka[$j]=$ka[$j+1];
            $ka[$j+1]=$temp;
        }
    }
}
for($i=0;$i<$count;$i++){
    $asort["$ka[$i]"]=$array[$ka[$i]];
}
print_r($asort);
?>

在保持关联数组的对应关系,用个最简单的冒泡排序法:
 

复制代码 代码示例:
$array = array('one'=>200, 'three'=>150, 'four'=>100, 'two'=>230);
$values = array_values($array);
do {
    $cur = min($values);
    #$cur = max($values);
    $key = array_search($cur,$array);
    if ($key === false) {
        break;
    }
    $result[$key] = $cur;
    unset($array[$key]);
    unset($values[array_search($cur,$values)]);
} while (count($values)>0);
var_dump($result);
?>