冒泡排序法 这个想法是不错。你这个办法可以处理到数组的值如84 30 99,但是这里还有个键值要处理。如array('orange'=>90),这里键值并非数值,不能是简单的数字循环来排序。如何处理这个东西??

解决方案 »

  1.   

    先判断是不是数字,如果不是就用strcmp比较
      

  2.   

    字符串也可以比较,开始把键名放到另外一个数组中做value,然后进行比较,也是一样的<?php
    $array = array("yellow"=>1, "green"=>2, "blue"=>3, "white"=>4, "grey"=>5);$keys = array();
    foreach($array as $key => $value){
    $keys[] = $key;
    }for($i = count($array) - 1; $i > 0; $i--){
    for($j = 0 ;$j < $i; $j ++){
    if($keys[$j] > $keys[$j + 1]){   
                $tmp = $keys[$j];   
                $keys[$j] = $keys[$j + 1];   
                $keys[$j + 1] = $tmp;   
            }          
    }
    }foreach($keys as $k => $v){
    $result[$v] = $array[$v];
    }
    print_r($result);
    ?>这个应该不是最优化的,大家还有什么好的办法
      

  3.   

    这样也可以比较字符的大小!好办法!嗯这个办法帮我很大的忙,代码也是满精减的了,谢谢yunfeifan兄
      

  4.   

    array_keys 可以返回数组的键名