zoukankan      html  css  js  c++  java
  • php基础篇-二维数组排序姐妹篇

    前面介绍了php多维数组排序的一个函数array_multisort() ,想了解的人可以点击

    二维数组排序 array_multisort


    下面介绍下不适用array_multisort()进行多维数组的排序。

    这里介绍下2个php排序函数,一个是asort,一个是arsort.

    asort(array,sorttype) 函数对数组进行排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。

    可选的第二个参数包含了附加的排序标识。

    • SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型)。
    • SORT_NUMERIC - 把值作为数字来处理
    • SORT_STRING - 把值作为字符串来处理
    • SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置。

    如果成功则返回 TRUE,否则返回 FALSE。


    arsort(array,sorttype) 函数对数组进行逆向排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。这个函数的用法和asort一样,只不过这个是对数组的索引进行逆向排序。


    下面给出二维数组的排序算法:

    <?php 
            function array_sort($arr,$key,$type='asc'){ 
    		$keyvalues = $new_array = array();
    		foreach ($arr as $k=>$v){
    			$keyvalues[$k] = $v[$key];
    		}
    		if($type == 'asc'){
    			asort($keyvalues);
    		}else{
    			arsort($keyvalues);
    		}
    		foreach ($keyvalues as $k=>$v){
    			$temparray[$k] = $arr[$k];
    		}
    		return $temparray; 
    	}
    
    	$student = array(
    		array('name'=>'张三','age'=>'18','weight'=>100,'height'=>180),
    		array('name'=>'李四','age'=>'20','weight'=>200,'height'=>150),
    		array('name'=>'王五','age'=>'30','weight'=>150,'height'=>165),
    		array('name'=>'赵六','age'=>'50','weight'=>90,'height'=>173),
    		array('name'=>'孙七','age'=>'35','weight'=>160,'height'=>170)
    	);
    
    	$studentlist = array_sort($student,'weight');
    	var_dump($studentlist);




    通过asort这个函数,将保留二维数组的索引排序,再通过这个索引,即可得到排序好的二维数组的索引对应的值。
  • 相关阅读:
    HttpWebRequest、HttpWebResponse简单Demo
    向虚拟机发短信(android SMS 调试)
    双系统时间相关8小时
    电脑开机报警声
    Windows Live Writer 代码插件
    配置Linux防火墙
    配置yum源方法,以及失效时的处理
    xp系统下硬盘安装centos6.5
    Android 四大组件 与 MVC 架构模式
    elasticsearch GIS空间查询问题解决
  • 原文地址:https://www.cnblogs.com/itdreamfly/p/12871657.html
Copyright © 2011-2022 走看看