博客列表 >数组排序-2018.08.27

数组排序-2018.08.27

雨天的博客
雨天的博客原创
2018年09月06日 21:14:05653浏览

实例

<?php
/**
 * 数组是有键和值两部分组成,排序也主要依据键名与值;
 * 键名:索引和关联,升序和降序
 * 值:也有2中排序规则
 */
//1.根据数组的值进行排序
$arr = [20,50,10,23,56,45,80];
//升序
sort($arr);//排序结果会影响原始数组
echo var_export($arr);
echo '<br>';

$arr = [20,50,10,23,56,45,80];
//降序
rsort($arr);
echo var_export($arr);
echo '<br>';

$arr = [20,50,10,23,56,45,80];
//回调
usort($arr,function($val1,$val2){
    $res = $val1-$val2;
    switch ($res)
    {
        case ($res<0):
            return -1;break;
        case ($res>0):
            return 1;break;
        default:
            return 0;
    }
});
echo var_export($arr);
echo '<br>';

//usort()多维数组排序
$stu = [
    ['name'=>'黄蓉','grade'=>90],
    ['name'=>'郭靖','grade'=>80],
    ['name'=>'杨康','grade'=>60],
    ['name'=>'洪七公','grade'=>99]
];
//用户自定义排序
usort($stu,function ($m,$n){
    return strcmp($m['grade'],$n['grade']);
});
echo var_export($stu);
echo '<br>';

//用户数组的键进行排序
$lang = ['html'=>'标记语言','php'=>'预处理语言','css'=>'样式表','js'=>'脚本语言'];
ksort($lang);
echo var_export($lang);
echo '<br>';

//键名降序
$lang = ['html'=>'标记语言','php'=>'预处理语言','css'=>'样式表','js'=>'脚本语言'];
krsort($lang);
echo var_export($lang);
echo '<br>';

//使用自定的回调函数,对键名进行排序uksort()
$lang = ['html'=>'标记语言','php'=>'预处理语言','css'=>'样式表','js'=>'脚本语言'];
uksort($lang,function ($m,$n){
    $a = substr($m,1,1);
    $b = substr($n,1,1);
    return strcmp($a,$b);
});
echo var_export($lang);

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议