function maoPao($arr,$style)//默认传递的是值,不是地址。如果在$arr前加个&,则和$arr1指向同一个地址,函数外的$arr1也被排好了 { $temp=0; $flag=false; for($i=0;$i{ for($j=0;$j{ if($style=='bts') $op=$arr[$j]else if($style=='stb') $op=$arr[$j]>$arr[$j+1]; if($op) { $temp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$temp; $flag=true; } } if($flag==false) { break;//当一次横向循环下来flag==false;说明纵向循...
$a = array(4,"37",3,100,0,-5); sort($a); for ($i=0; $iecho $a[$i]." "; } echo ""; sort($a,SORT_STRING); for ($i=0; $iecho $a[$i]." "; } echo ""; ?>输出结果: -5 0 3 4 37 100 -5 0 100 3 37 4 降序排序:rsort(array, [sort type]) 参数用法与sort函数相同。 关联数组排序: 函数:asort(array, [sort type]) 说明:根据关联数组的元素值进行升序排序。参数使用见上面的sort函数。 函数:ksort(array, [sort type])...
function my_sort($a, $b) { if ($a == $b) return 0; return ($a > $b) ? -1 : 1; } $people = array("Swanson" => "Joe", "Griffin" => "Peter", "Quagmire" => "Glenn", "swanson" => "joe", "griffin" => "peter", "quagmire" => "glenn"); uasort($people, "my_sort"); print_r ($people); ?>输出结果: Array ( [griffin] => peter [swanson] => joe [quagmire] => glenn [Griffin] => Peter [Swanson] => Joe [Quag...
function bubbingSort(array $array){for($i=0, $len=count($array)-1; $i{for($j=$len; $j>$i; --$j){if($array[$j] {$temp = $array[$j];$array[$j] = $array[$j-1];$array[$j-1] = $temp;}}}return $array;}print '';print_r(bubbingSort(array(1,4,22,5,7,6,9)));print '';?>快速排序实现原理 先保证列表的前半部分都小于后半部分,然后分别对前半部分和后半部分排序,这样整个列表就有序了。function quickSort(array $array)...
/*$array_name:传入的数组;$row_id:数组想排序的项;$order_type:排序的方式,ASC或者DESC;*/ function array_sort($array_name,$row_id,$order_type){ $array_temp=array(); foreach($array_name as $key=>$value){//循环一层; $array_temp[$key]=$value[$row_id];//新建一个一维的数组,索引值用二维数组的索引值;值为二维数组要比较的项目的值; } if($order_type==="ASC"){ asort($array_temp); }else{ arsort...
无限分类,从数据库查询数据 在数组中递归进行自定义排序,其中也意识到挺多不足,处理得不好,可能有更好办法,大家一起交流 超过100行了。放不全 class Tree{ protected $arr = array(); //排序数组 protected $info = array(); //存放错误信息 protected $tree = array(); //存放生成类数组 protected $flag = true; //标志位 public function __construct() { } //得到数据 publ...
转载地址: http://blog.qita.in/?post=468 <?php//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 function array_sort($arr, $keys, $order=0) {if (!is_array($arr)) { return false;}$keysvalue = array();foreach($arr as $key => $val) { $keysvalue[$key] = $val[$keys];}if($order == 0){ asort($keysvalue);}else { arsort($keysvalue);}reset($keysvalue);foreach($...
function array_sort($arr,$keys,$orderby=asc){ $keysvalue = $new_array = array(); foreach ($arr as $k=>$v){ $keysvalue[$k] = $v[$keys]; } if($orderby== asc){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k=>$v){ $new_array[] = $arr[$k]; } return $new_array; }
//二维数组 按键值 排序function array_sort($array,$keys,$type='desc'){if(!isset($array) || !is_array($array) || empty($array)){return '';}if(!isset($keys) || trim($keys)==''){return '';}if(!isset($type) || $type=='' || !in_array(strtolower($type),array('asc','desc'))){return '';}$keysvalue=array();foreach($array as $key=>$val){$val[$keys] = str_replace('-','',$val[$keys]);$val[$keys] = str_replace(...
用php代码实现的冒泡排序,有需要的朋友,可以参考学习下。冒泡排序(BubbleSort) 依次比较相邻的两个数,将小数放在前面,大数放在后面。 即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。 然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。 至此第一趟结束,将最大的数放到了最后。 在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使...
为大家介绍php插入排序的实现算法与代码,有需要的朋友,可以参考学习下。插入排序,就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。 算法描述: ⒈ 从第一个元素开始,该元素可以认为已经被排序 ⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描 ⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置 ⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 ⒌ 将新元素插...
为大家介绍php 选择排序的一个代码示例,有需要的朋友,可以参考下。与php 冒泡排序相比,选择排序(Selection sort)是一种简单直观的排序算法。工作原理: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 以此类推,直到所有元素均排序完毕。$arr[$j]){$valmin=$arr[$j];$minkey=$j;}}//进行交换$temp=$arr[$i];$arr[$i]=$arr[$...
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");krsort($my_array);print_r($my_array);?>输出:$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");asort($my_array);print_r($my_array);?>输出: Array (=> Cat [a] => Dog [c] => Horse ) >>> 更多内容,请查看 php数组排序方法大全 <<<
本文介绍下,php中使用array_multisort函数进行二维数组排序的例子,有需要的朋友,参考下吧。继上一篇文章:PHP二维数组排序自定义函数,今天,我们再介绍一个php二维数组排序的例子。 php对二维数组的排序很简单,主要用到array_multisort函数。 例子:67, 'edition' => 2);$data[] = array('volume' => 86, 'edition' => 1);$data[] = array('volume' => 85, 'edition' => 6);$data[] = array('volume' => 98, 'edition' => 2);...
本文介绍下,php实现数组排序的例子,可以实现快速排序、堆排序、希尔排序、插入排序等。有需要的朋友参考下。php数组排序实例,代码如下:5){ while($low $temp){ $high --; } $list[$low] = $list[$high]; while($low 0; $i --){ swap($list, $i, 0); heapfy($list, 0, $i - 1); } } //创建堆 function buildheap(&$list){ for($i = (count($list) - 2)/2; $i >= 0; $i --){ heapfy($list, $i, count($list) - 1); } } //维护堆...