1.array_chunk() 把一个数组分割为新的数组块。 其中每个数组的单元数目由 size 参数决定。最后一个数组的单元数目可能会少几个。
例子  

<?php

$a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse","d"=>"Cow");

print_r(array_chunk($a,2));

?>

输出:

Array (

[0] => Array ( [0] => Cat [1] => Dog )

[1] => Array ( [0] => Horse [1] => Cow )

)

【

这里非常像linux里的split工具。

[root@xen187v tmp]$ cat tmp

1

2

3

4

5

6

7

[root@xen187v tmp]$ split -l 2 tmp

[root@xen187v tmp]$ ls

tmp  xaa  xab  xac  xad

[root@xen187v tmp]$ cat xaa 

1

2

[root@xen187v tmp]$ cat xab 

3

4

[root@xen187v tmp]$ cat xac

5

6

[root@xen187v tmp]$ cat xad

7

】

2.

array_merge()
把一个或多个数组合并为一个数组。【这个是纵向合并】

array_combine() 函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。【这个是横向合并】

如果其中一个数组为空,或者两个数组的元素个数不同,则该函数返回 false。

例子

<?php

$a1=array("a","b","c","d");

$a2=array("Cat","Dog","Horse","Cow");

print_r(array_combine($a1,$a2));

?>

【

这个很像linux下的paste命令类似。

paste单词意思是粘贴。该命令主要用来将多个文件的内容合并,与cut命令完成的功能刚好相反。

粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同

[root@xen187v tmp]$ cat xaa

1

2

[root@xen187v tmp]$ cat xab

3

4

[root@xen187v tmp]$ paste xaa xab

1       3

2       4

给xaa多加一行看看会怎么样

[root@xen187v tmp]$ cat xaa

1

2

3

[root@xen187v tmp]$ paste xaa xab

1       3

2       4

3

给xab再加两行看看怎样样

[root@xen187v tmp]$ cat xab

i

i

3

4

[root@xen187v tmp]$ paste xaa xab

1       i

2       i

3       3

        4

[root@xen187v tmp]$

】

3.

array_sum()
计算数组中所有值的和。

array_count_values() 函数用于统计数组中所有值出现的次数。

本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。

【很像uniq -c

[root@xen187v tmp]$ cat xab

i

i

3

4

[root@xen187v tmp]$ uniq -c xab

      2 i

      1 3

      1 4

[root@xen187v tmp]$ uniq -c xab|awk '{print $2" "$1}'

i 2

3 1

4 1

[root@xen187v tmp]$ 

】

4.

【感慨:要是这些数组函数名和linux命令名一致该多好,方便记忆】

5.array_diff() 函数返回第一个数组,不在后继数组中的数据项数组

6.array_flip()交换数组中的键和值. 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失。

如果原数组中的值的数据类型不是字符串或整数,函数将报错。

【这个值得记忆,处理数据时,容易遇到key->value要翻转的情况】

7.array_intersect()
计算数组的交集。

【

面试中容易出的题,用原生代码求两个数组的交集

function intersectArray($arr1,$arr2)

{


$tmpArr = array();


foreach($arr1 as $v1) $tmpArr[$v1] = 0;


foreach($arr2 as $v2)


{


if(isset($tmpArr[$v2])


{


$tmpArr[$v2] = 1;


}


}


//$tmpArr中值为1的就是交集


$retArr = array();


foreach($tmpArr as $key => $v)


{


if($v == 1) $retArr[] = $key;


}


return $retArr;

}

】

8.array_keys()
返回数组中所有的键名。 

9.

array_rand()
从数组中随机选出一个或多个元素,并返回。

shuffle() 函数把数组中的元素按随机顺序重新排列

10.

array_reverse()
将原数组中的元素顺序翻转,创建新的数组并返回。

11.

array_search()
在数组中搜索给定的值,如果成功则返回相应的键名。

12 

array_unique()
删除数组中重复的值。

13

arsort()
对数组进行逆向排序并保持索引关系。 

asort()
对数组进行排序并保持索引关系。

krsort()
对数组按照键名逆向排序。 

ksort()
对数组按照键名排序。

php array相关函数个人小结的更多相关文章

  1. [PHP] 重回基础(Array相关函数)

    使用函数array_keys(),得到数组中所有的键,参数:数组 $arr=array(); $arr['one']="one"; $arr['two']="two&qu ...

  2. Array方法学习小结

    原生js forEach()和map()遍历 A:相同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ...

  3. 码农眼中的数学之~矩阵专栏(附Numpy讲解)

      2.矩阵专栏¶ 吐槽一下:矩阵本身不难,但是矩阵的写作太蛋疼了 (⊙﹏⊙)汗 还好有Numpy,不然真的崩溃了... LaTex有没有一个集成了很多常用公式以及推导或者含题库的在线编辑器? 代码裤 ...

  4. C++003基础

    1.C++对C的扩展 1简单的C++程序 1.1求圆的周长和面积 数据描写叙述: 半径.周长,面积均用实型数表示 数据处理: 输入半径 r. 计算周长 = 2*π*r : 计算面积 = π* r2 . ...

  5. Matlab脚本和函数

    脚本和函数 脚本: 特点:按照文件中所输入的指令执行,一段matlab指令集合.运行后,运算过程产生的所有变量保存在基本工作区.可以进行图形输出,如plot()函数. 举例: 脚本文件ex4_15.m ...

  6. PostgreSQL数组类型应用

    在使用 awk 脚本:数组是一大利器:在很多场景是用数组能处理. 在 python 中,数据类型list:相当于array类型. 在 Oracle 中,对 array 不够友好,感觉像是鸡肋.但是在 ...

  7. 【跟着子迟品 underscore】Array Functions 相关源码拾遗 & 小结

    Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...

  8. JavaScript Array对象sort() 方法小结

    sort() 方法用于对数组的元素进行排序. 语法arrayObject.sort(sortfunction) 参数sortfunction 可选.规定排序顺序.必须是函数. 返回值对数组的引用.请注 ...

  9. JavaScript系统学习小结——Object类型、Array类型

    今天学习JavaSript中引用变量中的Object类型和Array类型: 1. Js中大多数引用类型值都是Object类型的实例,Object类型在应用程序中存储和传输数据时,是非常理想的选择: 创 ...

随机推荐

  1. 动态修改UINavigationBar的背景色

    这是我们最终想要得到的效果: 思路 在UISrollView的delegate方法 1  - (void)scrollViewDidScroll:(UIScrollView *)scrollView ...

  2. 22. 使用 awk / grep / head / tail 命令进行文本 / 日志分析 (/home/D/acc.log)

    一.awk     # 统计 a-read-file 接口 中,接口耗时 超过 0.007 秒的有多少个请求     D@Demon ~]$ awk '$7>0.007' acc.log | w ...

  3. Linux远程登录

    Linux远程登录 远程登录 关闭linux的防火墙 /etc/init.d/iptables stop 启动VNC服务器 Vncserver & 然后记住desktop is localho ...

  4. css-盒模型

    <!DOCTYPE html>CSS3-盒模型 盒模型属性: width 宽度 height 高度 margin 外边距 border 边框 padding 内边距.test{width: ...

  5. Javascript进阶篇——( JavaScript内置对象---下)--Math对象---笔记整理

    Math对象使用 Math 的属性和方法: <script type="text/javascript"> var mypi=Math.PI; var myabs=Ma ...

  6. 将集合类转换成DataTable

    /// <summary> /// 将集合类转换成DataTale /// </summary> /// <param name="list"> ...

  7. 提示框的优化之自定义Toast组件之(三)Toast组件优化

    开发步骤: 在toast_customer.xml文件中添加一个图片组件对象显示提示图片 <?xml version="1.0" encoding="utf-8&q ...

  8. ios10 适配问题总结

    看各个大神整理而成 1.检查版本问题 不可以像下面这样用 #define isiOS10 ([[[[UIDevice currentDevice] systemVersion] substringTo ...

  9. 跨平台渲染框架尝试 - constant buffer的管理

    1. Preface Constant buffer是我们在编写shader的时候,打交道最多的一种buffer resource了.constant表明了constant buffer中的数据,在一 ...

  10. (转) Virtual function

    原文地址:http://en.wikipedia.org/wiki/Virtual_function In object-oriented programming, a virtual functio ...