1.自定义打印函数P

//自定义打印
function pp($data,$exit=0){
// 定义样式
$str='<pre style="display: block;padding: 9.5px;margin: 44px 0 0 0;font-size: 13px;line-height: 1.42857;color: #333;word-break: break-all;word-wrap: break-word;background-color: #F5F5F5;border: 1px solid #CCC;border-radius: 4px;">';
// 如果是boolean或者null直接显示文字;否则print
if (is_bool($data)) {
$show_data=$data ? 'true' : 'false';
}elseif (is_null($data)) {
$show_data='null';
}else{
$show_data=print_r($data,true);
}
$str.=$show_data;
$str.='</pre>';
echo $str;
if($exit)
exit;
}

效果:

2.array_clomn()  和array_combine() 和array_values()

说明

array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ) 

array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。

array_combine ( array $keys , array $values ):数组

通过使用数组中的值keys作为键并使用 values数组中的值作为对应值来 创建数组

array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名。

例:有这样一个数组 $arr:

想取出id对应name的值 的数组

$arr = array_column($goods,'name','id');

输出为

$arr = array_combine(array_column($arr,'id'),$arr);

输出结果为

清除掉键名 : $arr = array_values($arr)   应用场景举例(循环合并数组后清除掉前面的id键名)

3.array_filter()

array_filter ( $array , $callback )

依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。

如果第二个值不填,则是过滤掉数组中的空值,第二个参数可以是自定义参数,挨个把数组的值丢进自定义函数,符合条件值的就返回

例:想把数组$results中title数组为空的过滤掉

  1. Array
  2. (
  3. [0] => Array
  4. (
  5. [id] => 61
  6. [name] => 操作指南
  7. [category_id] => 64
  8. [displayorder] => 1
  9. [title] => Array
  10. (
  11. [0] => Array
  12. (
  13. [id] => 2
  14. [name] => 采购操作指南
  15. [category_id] => 61
  16. )
  17.  
  18. [1] => Array
  19. (
  20. [id] => 3
  21. [name] => 测试操作
  22. [category_id] => 61
  23. )
  24.  
  25. )
  26.  
  27. )
  28.  
  29. [1] => Array
  30. (
  31. [id] => 62
  32. [name] => 入驻协议
  33. [category_id] => 64
  34. [displayorder] => 0
  35. [title] => Array
  36. (
  37. )
  38.  
  39. )
  40.  
  41. [2] => Array
  42. (
  43. [id] => 64
  44. [name] => 提现帮助
  45. [category_id] => 64
  46. [displayorder] => 0
  47. [title] => Array
  48. (
  49. [0] => Array
  50. (
  51. [id] => 1
  52. [name] => 提现帮助
  53. [category_id] => 64
  54. )
  55.  
  56. )
  57.  
  58. )
  59.  
  60. )

实现代码:

  1. $results = array_filter($results,function ($val){return !empty($val['title']);});
  2.  
  3. 执行并打印后

键为1的title数值为空,就被过滤掉了

4.array_sum(array_column($array,$column));

array_sum()是计算一维数组的值的和,array_column()是从二维数组$array中取出一列$column,

下面演示计算二维数组$results的o_id这一列的和

  1. Array
  2. (
  3. [0] => Array
  4. (
  5. [code] => LS-20191018-3860224
  6. [sign_user] => 鏉庡皯椋�
  7. [o_id] => 151
  8. )
  9.  
  10. [1] => Array
  11. (
  12. [code] => LS-20191019-8978560
  13. [sign_user] => 鏉庣粛椋�
  14. [o_id] => 171
  15. )
  16.  
  17. [2] => Array
  18. (
  19. [code] => LS-20191022-7495040
  20. [sign_user] => 鏉庣粛椋�
  21. [o_id] => 187
  22. )
  23.  
  24. [3] => Array
  25. (
  26. [code] => LS-20191022-1037312
  27. [sign_user] => 鏉庣粛椋�
  28. [o_id] => 187
  29. )
  30.  
  31. [4] => Array
  32. (
  33. [code] => LS-20191022-2244480
  34. [sign_user] => 鏉庣粛椋�
  35. [o_id] => 187
  36. )
  37.  
  38. [5] => Array
  39. (
  40. [code] => LS-20191023-5884288
  41. [sign_user] => 鏉庣粛椋�
  42. [o_id] => 192
  43. )
  44.  
  45. [6] => Array
  46. (
  47. [code] => LS-20191023-1440512
  48. [sign_user] => 鏉庣粛椋�
  49. [o_id] => 190
  50. )
  51.  
  52. [7] => Array
  53. (
  54. [code] => LS-20191023-5723264
  55. [sign_user] => 鏉庣粛椋�
  56. [o_id] => 200
  57. )
  58.  
  59. )
    代码:
  1. $num = array_sum(array_column($results,'o_id'));
    结果:
  1. 1465

5.set_key_field()

  1. /**
    * 替换/增加 二位数组属性值 给二维数组中的每个一维数组增加若干列或者删除若干列
    *
    * @param array $data 需替换的二维数组
    * @param array $data $key[替换的健] => $val['替换的值'] (可多个健值)
    * @param array $data 需要删除的而为数组的健值 例:['id','key'...]
    */
    function set_key_field($results = [],$data = [],$del_key = [])
    {
    if(empty($results) || empty($data) || !is_array($results) || !is_array($data))
    return $results;
  2.  
  3. foreach($results as &$val) {
    if(!is_array($val)) {
    continue;
    }
  4.  
  5. if(!empty($del_key)) {
    foreach($del_key as $del) {
    if(!empty($val[$del]))
    unset($val[$del]);
    }
    }
  6.  
  7. foreach($data as $data_key => $data_val) {
    $val[$data_key] = $data_val;
    }
    }
  8.  
  9. return $results;
    }

6.array_slice() 函数

1.从数组中按条件取出值,我实际应用到的场景是从一个数组中取出最后两个元素的值

例:

  1. <?php
  2. $a=array("red","green","blue","yellow","brown");
  3. print_r(array_slice($a,-2));
  4. ?>

array_slice(array,start,length,preserve)
第一个参数是要操作的数组,第二个参数是从第几个开始取,第三个可选参数是取多少个,默认取完,第四个可选参数true或false ,true保留键名,默认false重置键名

7.strip_tags() 函数

过滤掉字符串中的html标签,例如:echo strip_tags( ‘<p>222</p>’) ;输出222,把p标签过滤掉了

8.similar_text(string,string)函数

比较两个字符串的相似度,返回一个数字,例如70,说明两个字符串的相似度是70%

  1.  

PHP收集一些常用函数与好用的自定义函数的更多相关文章

  1. Oracle自定义函数和存储过程示例,自定义函数与存储过程区别

    参考资料:http://www.newbooks.com.cn/info/60861.html oracle自定义函数学习和连接运算符(||) 贴一段中文文档示例,应该就可以开始工作了: --过程(P ...

  2. 在JS中,一个自定义函数如何调用另一个自定义函数中的变量

    function aa1511() { var chengshi="马鞍山"; var shengfen="安徽省"; return shengfen+&quo ...

  3. vue 之 render 函数不能渲染非全局自定义函数-方案

    import customCom from 'xxx.vue' render: (h) => { return h(customCom) }

  4. 数据库之mysql篇(6)—— mysql常用函数函数/自定义函数

    常用函数 运算函数 我相信你都能看懂,所以以上的不再做过多解释 然后还有个,前面漏掉的between and: 意指10是否在0到20之间,如果是返回1,否则返回0 日期函数 这个要稍微注意一下参数, ...

  5. python基础之函数(自定义函数)

    函数: 函数的定义: 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数. ...

  6. asp.net MVC helper 和自定义函数@functions小结

    asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ...

  7. MySQL自定义函数

    用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同. 自定义函数两个必要条件: 参数:可以有另个或多个 返回值:只能有一个 创建自定 ...

  8. 浅谈Excel开发:四 Excel 自定义函数

    我们知道,Excel中有很多内置的函数,比如求和,求平均,字符串操作函数,金融函数等等.在有些时候,结合业务要求,这些函数可能不能满足我们的需求,比如我想要一个函数能够从WebService上获取某只 ...

  9. SQL Server编程(02)自定义函数

    在编程过程中,我们通常把特定的功能语句块封装称函数,方便代码的重用.我们可以在SQL Server中自定义函数,根据函数返回值的区别,我们自定义的函数分两种:标量值函数和表值函数. 自定义函数的优点: ...

随机推荐

  1. VScode安装golang插件详细教程

    可能是由于非科班自学编程,所以在安装插件的时候虽然参考了很多人写的教程,但是总安装不成功,在综合各位大牛的教程之后进行总结,并且亲自实践安装成功,希望能给初学编程的人一些帮助,如果有不对的地方还希望大 ...

  2. 规范git commit提交记录和版本发布记录

    在开发过程中我们一般都会用到git管理代码,在git commit提交代码时我们一般对git commit message随便写点简单的描述,可是随着项目参与人数的增多,发现提交的commit记录越来 ...

  3. springboot启动原理解析

    springboot核心原理: 1.基于springmvc无配置文件完全注解化 + 内置web容器实现springboot框架.main函数方式的启动 2.通过maven快速整合第三方框架 sprin ...

  4. Windows系统下解决PhPStudy MySQL启动失败

    报错 Apache\Nginx服务正常启动了,但是MySQL却一直启动失败. 解决流程 查看端口是否被占用 打开系统自带的资源管理器,查看监听端口3306是不是被占用,下图中3306端口被mysqld ...

  5. 【第二版】高仿Android网易云音乐企业级项目实战课程介绍

    这是一门付费Android项目课程,我们只做付费课程:同时也感谢大家的支持. 这一节,对本课程做一个简单介绍,以及放一些项目效果图,如果想直接查看项目视频演示,可以直接在腾讯课堂查看[高仿Androi ...

  6. android:Program type already present: android.support.v4.app.INotificationSideChannel

    背景 这个错误的原因是:androidx和 android.support同时存在. 首先,网上有很多解答说这样处理: 在 gradle.properties 添加: android.useAndro ...

  7. Markdown 使用误区

    新手写 Markdown 容易犯这么个错: 为了美观,使用标记. 例如 为了让一句话显示粗体,使用标题. 嫌 3 级标题字体太大,2 级标题子标题使用 4 级. 强调一个词,使用行内代码. -- 每个 ...

  8. numpy代码片段合集

    生成shape为(num_examples, num_inputs),符合0-1分布的数据. np.random.normal(0, 1, (num_examples, num_inputs))

  9. 精通awk系列(4):awk用法入门

    回到: Linux系列文章 Shell系列文章 Awk系列文章 awk用法入门 awk 'awk_program' a.txt awk示例: # 输出a.txt中的每一行 awk '{print $0 ...

  10. vs2017 C# ActiveX浏览器插件 创建 发布 C# windows窗体控件库(.NET Framework)注意事项

    vs2017需要安装插 插件下载地址:https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.Micro ...