php usort函数解析

2023-05-16

  1. 语法

    usort ( array &$array , callable $cmp_function ) : bool

  2. 执行过程

    1. usort函数调用自定义的排序函数对数组进行排序。排序函数会比较数组中的两个元素,并返回它们的大小关系。
    2. usort函数根据自定义的排序函数返回的大小关系来对数组进行排序。如果大小关系为负数,则表示第一个元素小于第二个元素,usort函数会将这两个元素交换位置,否则不交换。
    3. usort函数依次比较数组中的元素,直到所有元素都被比较完毕,数组的排序完成。
    4. usort函数返回排序后的数组。

    usort函数会修改原数组,如果需要保留原数组,请在排序之前先复制一份原数组。

    重点是,比较结果为负数,才会满足交换位置!

  3. 示例

    <?php
    function my_sort($a, $b)
    {
        echo "Comparing $a and $b";
        echo '<br>';
        if ($a == $b) {
            echo 'Equal';
            echo '<br>';
            return 0;
        }
        $res = ($a < $b) ? -1 : 1;
        echo "Result:$res";
        echo '<br>';
        return $res;
    }
    
    $array = array(6, 2, 8, 4);
    usort($array, "my_sort");
    var_dump($array);
    //输出结果为:
    //Comparing 2 and 6
    //Result:-1
    //Comparing 4 and 2
    //Result:1
    //Comparing 8 and 2
    //Result:1
    //Comparing 6 and 2
    //Result:1
    //Comparing 8 and 6
    //Result:1
    //Comparing 4 and 8
    //Result:-1
    //Comparing 6 and 4
    //Result:1
    //array(4) { [0]=> int(2) [1]=> int(4) [2]=> int(6) [3]=> int(8) }
    

    着实搞不懂这个参数比较的规则。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php usort函数解析 的相关文章

  • latex在ipython jupyter notebook中的使用

    In 2 from IPython display import Latex In 5 数学公式的前后要加上 或 和 Latex r 34 f x 61 3x 43 7 34 Out 5 In 6
  • MATLAB 2018b 帮助页面设置为中文显示

    MATLAB 2018b 帮助页面设置为中文显示 具体步骤如下 xff1a 1 随机点击一个matlab的函数点击 help 2 点击帮助页面的设置按钮 3 按照如下步骤设置即可
  • 图解Java线程死锁的必要条件

    文章目录 What is Deadlock发生死锁要如何解决如何预防死锁参考资料 What is Deadlock In concurrent computing a deadlock is a state in which each me
  • 远程LINUX桌面的好用工具,NoMachine.

    安装及使用都比VNC及XManager要好用 xff0c 网站 https www nomachine com 对应下各自的版本后 xff0c 按照网站的说明进行安装就可以了 xff0c 安装过程不需要其他依赖项 xff01 Linux安装
  • 竞赛经验|2019年电赛B题四旋翼无人机组巡线机器人

    竞赛经验 xff5c 2019年电赛B题四旋翼无人机组巡线机器人 参赛背景和比赛回忆 xff1a 1 院校背景 xff1a 2 规则与现实 xff1a 3 比赛流程 xff1a 备赛建议1 器件选择 xff1a 2 针对学习 xff1a 写
  • C语言实现http post请求和get请求,post请求可以上传图片和文件

    文章目录 1 http协议简介2 http协议分析2 1 http请求2 1 1 请求行2 1 1 1 请求方法2 1 1 2 URL2 1 1 3 协议版本2 1 1 4 请求行总结 2 1 2 请求头部2 1 3 请求数据 2 2 ht
  • 软件改变世界

    随着科技的不断进步 xff0c 软件及其相关技术的发展已经深刻地改变了人类社会的方方面面 从交通运输 医疗卫生到商业服务 教育培训 xff0c 软件技术的应用已经深入到我们的日常生活中 xff0c 对我们的生活方式和生产方式都带来了深刻的影
  • MATLAB 比较好入门书籍有哪些推荐

    https www zhihu com topic 19559252 hot https www zhihu com question 19904418 作者 xff1a 陈村 链接 xff1a https www zhihu com qu
  • pymavlink使用简单教程

    这里写自定义目录标题 pymavlink主要包含的模块连接样例 设置任务样例 更改飞行参数param样例 飞行模式总结 pymavlink Pymavlink是MAVLink协议的python实现 自身包括一个源代码生成器 xff08 ge
  • Python案例003——句子生成器

    目标 xff1a 通过用户提供的内容 xff0c 随机生成唯一的句子 提示 xff1a 以用户输入的名词 代词 形容词等作为输入 xff0c 然后将所有数据添加到句子中 xff0c 并将其组合返回 输出固定的 内容 43 用户输入的内容 c
  • 嵌入式软件工程师面试题

    1 int a 10 61 1 2 3 4 5 6 7 8 9 0 int p 61 amp a 1 则p 6 等于8 2 整数数组清零 xff1a bzero memset 3 siezof 测试变量所占地址的字节数 4 main cha
  • 国内代码仓库-码云

    相信使用github的同学会经常碰到这样的情况 xff0c 当我们从github上面下载稍微大一点的代码的时候就经常下载失败 xff0c 下载网速是非常的感人 国内从github上下载代码非常慢 xff0c 解决办法就是修改host或者vp
  • php对接支付宝Web支付-tp5.1框架

    具体流程 1 获取支付宝相关配置 2 传相关参数请求支付宝网关 订单金额 订单号等 3 支付宝请求回调地址 4 回调地址做相关业务处理 数据库增删改查之类 5 处理完成以后返回success给支付宝服务器 1 首先获取应用id和商户私钥以及
  • TX2+realsense D435i跑VSLAM--001--内核劝退篇

    想要使用tx2连接深度相机realsense D435i xff0c 没想到下载好官方自带SDK后 xff0c 说tx2的版本不满足需求 需要至少L4T28 2 1 xff0c 为什么偏偏就差这么一点版本 xff0c 然后查了查 xff0c
  • PHP对接微信支付--Native tp5框架

    这里实现的功能是 xff1a 网页上点击支付 xff0c 然后调用此方法生成二维码并且返回二维码的图片路径 xff0c 然后扫码支付 xff0c 付款成功进行回调 xff0c 在回调地址进行数据库操作 1 配置微信支付参数 微信支付参数 f
  • 微信支付退款 PHP

    应用场景 当交易发生之后一段时间内 xff0c 由于买家或者卖家的原因需要退款时 xff0c 卖家可以通过退款接口将支付款退还给买家 xff0c 微信支付将在收到退款请求并且验证成功之后 xff0c 按照退款规则将支付款按原路退到买家帐号上
  • windows+本地虚拟机搭建gitlab

    一 安装依赖软件 xff04 yum y install policycoreutils openssh server openssh clients postfix 二 设置postfix开机自启 xff0c 并启动 xff0c post
  • 使用Springboot实现简单的增删改查-超详细

    使用Springboot实现简单的增删改查 超详细 xff08 java小白 仅记录 不喜勿喷 xff09 php想转java 就想写个简单的增删改查 写惯了php 感觉java好复杂 php一般就是定义路由 xff0c 然后去控制器 xf
  • Windows下Virtual box安装centos以及virtual box的增强功能(超详细)

    Windows下Virtual box安装centos以及virtual box的增强功能 xff08 超详细 xff09 1 准备工作1 1 下载Virtual Box1 2 下载centos7镜像 2 安装virtual box3 新建
  • 使用crontab遇到的一点问题,报错/var/spool/cron : Permission denied和bash: /usr/bin/chattr: Permission denied

    问题 xff1a 在Linux服务器上设置crontab定时任务执行laravel任务调度的时候 xff0c crontab e 无法保存 会报错 var spool cron Permission denied 于是百度到是var spo

随机推荐