第一次随笔,写一些自己工作当中比较实用的函数吧。

数组函数:

1 array_column --返回数组当中指定的一列

  用法一:返回数组当中指定的一列

  应用场景:取出全班同学的id,去其他表查询这些同学的其他信息

  好处:减少查询数据库的次数(通过id一次性查出所有信息)

  列子:

    <?php

    $records = array(
        array(
            'id' => 2135,
            'first_name' => 'John',
            'last_name' => 'Doe',
        ),
        array(
            'id' => 3245,
            'first_name' => 'Sally',
            'last_name' => 'Smith',
        )
    );
 
    $first_names = array_column($records, 'id');
    print_r($first_names);

    //结果

    array('2135','3245');

    ?>

  用法二:用二维数组当中的id作为数组的key

  应用场景:通过array['id']取出数据

  好处:用array_column代替foreach将二维数组当中的id作为数组的key,代码简洁,调用系统函数提高效率

  列子:

    <?php

    $records = array(
        array(
            'id' => 2135,
            'first_name' => 'John',
            'last_name' => 'Doe',
        ),
        array(
            'id' => 3245,
            'first_name' => 'Sally',
            'last_name' => 'Smith',
        )
    );

    //使用foreach

    $records_key = array();

    foreach($records as $k => $v){

      $records_key[$v['id']] = $v;

    }

    print_r($first_names);
     //调用array_column
    $records_key = array_column($records, NULL,'id');
    print_r($first_names);

    ?>

    //结果

    Array(

      [2135] => Array(
        [id] => 2135
        [first_name] => John
        [last_name] => Doe
      )

      [3245] => Array(
        [id] => 3245
        [first_name] => Sally
        [last_name] => Smith
      )

    )

    

2 array_multisort --对多个数组或多维数组排序

  用法一:多维数组排序

  应用场景:将数据根据 价格 降序排序,根据 销量 升序排序

  好处:

  列子:

    <?php
      $data[] = array('price' => 67, 'sale_num' => 2);
      $data[] = array('price' => 86, 'sale_num' => 1);
      $data[] = array('price' => 85, 'sale_num' => 6);
      $data[] = array('price' => 98, 'sale_num' => 2);
      $data[] = array('price' => 86, 'sale_num' => 6);
      $data[] = array('price' => 67, 'sale_num' => 7);

      // 取得列的列表

      $price= array_column($data,'price');

      $sale_num= array_column($data,'sale_num');

      // 把 $data 做为最后一个参数,以通用键排序

      array_multisort($price, SORT_DESC, $sale_num, SORT_ASC, $data);
    ?>

    //结果 

     price | sale_num
    -------+--------
     98 | 2
     86 | 1
     86 | 6
     85 | 6
     67 | 2
     67 | 7

  未完待续!

php 实用函数的更多相关文章

  1. 你真的会玩SQL吗?实用函数方法汇总

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  2. 转:Delphi 6 实用函数

    来自: daocaoren0824, 时间: -- ::, ID: 再给你一份 程序员实用函数 {▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎▎} {▎ ▎} {▎ 大 ...

  3. 你真的会玩SQL吗?实用函数方汇总

    http://www.cnblogs.com/zhangs1986/p/4917800.html 实用函数方法 由于有些知识很少被用到,但真需要用时却忘记了又焦头烂额的到处找. 现在将这些‘冷门“却有 ...

  4. 分享PHP中的10个实用函数

    分享PHP中的10个实用函数 PHP的功能越来越强大,里面有着非常丰富的内置函数.资深的PHP程序员对它们可能都很熟悉,但很多参加PHP培训的PHP初学者,仍然对一些非常有用的函数不太熟悉.这篇文章里 ...

  5. ORACLE实用函数之一 ratio_to_report的简单使用

    应用场景: 查询学生成绩级别(ABCDE)个人数和所占百分比(案列简单,勿喷). 表结构: create or replace table stu_grade( id varchar2(36), le ...

  6. jQuery碎语(4) 实用函数

    6.实用函数 ● 修剪字符串 $('#id').val($.trim($('#someid').val())) ● 遍历集合 可能这样写: var anArray = ['one','two']; f ...

  7. python数据类型及有关的实用函数

    本系列例子使用python3.x, 编辑时间:2019-09-03,23:03:36 python以“对象引用”来存储数据,以对象来表达数据,每个对象都具有身份,对象和值. 实用函数: id(): 查 ...

  8. MinkowskiEngine实用函数和类

    MinkowskiEngine实用函数和类 sparse_quantize MinkowskiEngine.utils.sparse_quantize(coords, feats=None, labe ...

  9. MATLAB 实用函数

    MATLAB个人工具箱(MATLAB) mymail.m 可以利用MATLAB发送邮件(支持附件和群发),非常实用的函数,适用于:耗时很长的脚本完成后通知作者:外加定时器后用于信息推送:家庭监视器紧急 ...

随机推荐

  1. 数据结构(线段树):BZOJ 1568 [JSOI2008]Blue Mary开公司

    1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 602  Solved: 214[Submit ...

  2. guid转int

    如果你想生成一个数字序列,你将会获得一个19位长的序列. 下面的方法会把GUID转换为Int64的数字序列.  private static long GenerateIntID()  {       ...

  3. #345 div2 D. Image Preview

    Vasya's telephone contains n photos. Photo number 1 is currently opened on the phone. It is allowed ...

  4. 在javaweb中通过servlet类和普通类读取资源文件

    javaweb有两种方式读取资源文件 在Servlet中读取,可以使用servletContext,servletContext可以拿到web所有的资源文件,然后随便读,但是这种方法不常用,尽量少在S ...

  5. hadoop 2.0 详细配置教程(转载)

    转载: http://www.cnblogs.com/scotoma/archive/2012/09/18/2689902.html 作者:杨鑫奇 PS:文章有部分参考资料来自网上,并经过实践后写出, ...

  6. Vs 2008 对 OpenMP 的 支持 以及 OpenMP的环境变量及库函数

    Visual C++® 2008对OpenMP的支持 VC++2008根据项目属性配置的指示进行 /openmp编译器切换,当配置了OpenMP支持后,编译器会提供_OPENMP定义,可以使用#ifd ...

  7. 【转】Android TextView SpannableStringBuilder 图文混排颜色斜体粗体下划线删除线

    spannableStringBuilder 用法详解: SpannableString ss = new SpannableString("红色打电话斜体删除线绿色下划线图片:." ...

  8. Amoeba for MySQL 非常好用的mysql集群软件

    http://docs.hexnova.com/amoeba/ Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query 路由功能,专 ...

  9. STL——静态常量整数成员在class内部直接初始化

    如果class内含const static integral data member,那么根据C++标志规格,我们可以在class之内直接给予初值.所谓integral泛指所有的整数型别(包括浮点数) ...

  10. 开发环境下jboss 7.1.1 Final 的jsp热部署解决方案--转

    公司的网站系统使用的中间是jboss7.1.1 Final,由于有些数据和服务测试环境不具备,免不了要在测试环境调试些jsp页面,发现从jboss社区里下载的jboss应用有个问题,新增jsp页面会实 ...