标题:php数组按键排序 出处:Felix021 时间:Sun, 26 Jul 2009 15:47:08 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?1700 内容: 遇到一个问题: 有一个数组,其中每个元素都包含time和content两个子元素,需要按time字段排序。 记得以前是搞过这个东西的,有个专门的函数,貌似就是array_multisort来搞。 查了一下mannual,发现例子实在太晦涩,看起来很不爽。 于是干脆自己实现一个,只需要提供一个排序函数即可。 效率可能低一些,但是用起来舒服多了。。 //调用例子(cmp函数可以自己重写): mysort($array_name, 0, count($array_name) - 1, cmp); function cmp($i, $j){ return $i['time'] < $j['time']; } function mysort(&$arr, $s, $e, $func){ $i = $s; $j = $e; $tmp = $arr[$s]; if($s < $e){ while($i != $j){ while($i < $j && $func($tmp, $arr[$j])) $j--; if($i < $j){ $arr[$i] = $arr[$j]; $i++; } while($i < $j && $func($arr[$i], $tmp)) $i++; if($i < $j){ $arr[$j] = $arr[$i]; $j--; } } $arr[$i] = $tmp; mysort($arr, $s, $i-1, $func); mysort($arr, $i+1, $e, $func); } } Generated by Bo-blog 2.1.0