array_map 函数的介绍

将数组的每个单元使用回调函数
格式: array_map(callback, array)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
$arr = [
[
'id' => 1,
'name' => 'zhang',
],
[
'id' => 2,
'name' => 'lisi'
],
[
'id' => 3,
'name' => 'joe'
]
];
 
// 使用匿名回调函数,也可以使用自定义函数
$res = array_map(function($val) {
return $val['id'];
}, $arr);
 
print_r($arr);
 
// array_map 的回调函数也可以使用 php 函数
$arr = [
'aa',
'bc',
'Ad'
];
$res = array_map('strtoupper', $arr);
print_r($res);

array_filter 函数的介绍

使用回调函数过滤数组
格式:array_filter(array, callback)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$arr = [
[
'id' => 1,
'name' => 'zhang',
],
[
'id' => 2,
'name' => 'lisi'
],
[
'id' => 3,
'name' => 'joe'
]
];
$res = array_filter($arr, function($val) {
if ($val['id'] > 1) {
return $val;
}
});
print_r($res);

array_reduce 函数的介绍

使用回调函数迭代将函数转化为单一的值
格式:array_reduce(array, callback)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$arr = [
[
'id' => 1,
'name' => 'zhang',
],
[
'id' => 2,
'name' => 'lisi'
],
[
'id' => 3,
'name' => 'joe'
]
];
$res = array_reduce($arr, function($str, $val) {
return $str .= $val['name'];
});
echo $res; // 迭代调用,将数组的 name 拼接到字符串 $str 中
 
// 还有第三个参数,其实上例中,在第一次迭代的时候,$str 是空的,那么第三个参数,如果将此参数赋给 $str
$res = array_reduce($arr, function($str, $val) {
return $str .= $val['name'];
}, 'result:');
echo $res;

array_walk 函数的介绍

使用自定义函数对数组的元素做回调处理
格式: array_walk(array, callback)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$arr = [
[
'id' => 1,
'name' => 'zhang',
],
[
'id' => 2,
'name' => 'lisi'
],
[
'id' => 3,
'name' => 'joe'
]
];
array_walk($arr, function(&$val, $key) {
return $val['id'] += 10;
});
print_r($arr); // 回调函数中的第一个参数为数组值,第二个为键,原数组改变,返回值为 bool

PHP array 操作函数的更多相关文章

  1. dedecms功能性函数封装(XSS过滤、编码、浏览器XSS hack、字符操作函数)

    dedecms虽然有诸多漏洞,但不可否认确实是一个很不错的内容管理系统(cms),其他也不乏很多功能实用性的函数,以下就部分列举,持续更新,不作过多说明.使用时需部分修改,你懂的 1.XSS过滤. f ...

  2. byte数据的常用操作函数[转发]

    /// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...

  3. PHP常用的文件操作函数集锦

    以下是个人总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来. 一 .解析路径: 1 获得文件名:basename();给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件 ...

  4. JavaScript中常见的数组操作函数及用法

    JavaScript中常见的数组操作函数及用法 昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下 ...

  5. Runtime机制之结构体及操作函数

    一.动态语言 Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:具有灵活性,比如:消息转发,方法交换等.它有一个运行时系统Ob ...

  6. php文件夹与文件目录操作函数

    在php中一些常用的文件夹/文件目录操作函数总结. php文件夹操作函数 string basename ( string path [, string suffix] ) 给出一个包含有指向一个文件 ...

  7. PHP 面试时常考的文件操作函数

    前两天面试的时候,笔试要求写一些文件操作类函数,什么遍历目录获取文件扩展名之类的,回来后大致总结了一下PHP中一些常见的文件操作函数分享一下. 1.使用递归删除目录及目录下所有文件的方法. funct ...

  8. mongo的runCommand与集合操作函数的关系

    除了特殊注释外,本文的测试结果均基于 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0 ...

  9. STL容器能力一览表和各个容器操作函数异常保证

    STL容器能力一览表 Vector Deque List Set Multiset map Multimap 典型内部 结构 dynamic array Array of arrays Doubly ...

随机推荐

  1. jdbc执行Statement接口的步骤

    jdbc执行Statement接口的步骤如下: 1)驱动注册程序: Class.forName(com.mysql.jdbc.Driver); 2)获取连接对象: Connection conn = ...

  2. Map接口使用注意事项

    1,Map接口对象本身不能直接使用迭代进行输出的.因为map每个位置存放的是一对值. 而iterator每次只能找到一个值.如果一定要迭代输出,可以通过以下步骤.: 但是,Map接口只作为查找使用,输 ...

  3. 分区表/etc/fstab格式

    $ more /etc/fstabUUID=94e4e384-0ace-437f-bc96-057dd64f42ee / ext4 defaults,barrier=0 1 1tmpfs        ...

  4. keyset获取元素

    public static void main(String[] args){ Map map = new HashMap(); map.put("apple", "新鲜 ...

  5. StackExchange.Redis通用封装类分享(转)

    阅读目录 ConnectionMultiplexer 封装 RedisHelper 通用操作类封 String类型的封装 List类型的封装 Hash类型的封装 SortedSet 类型的封装 key ...

  6. ExtJS4随笔(1) -- 在VS中加入Ext4的智能提示

    将辅助文件加入到Web工程内即可. 辅助文件

  7. 51Nod-1136 欧拉函数

    51Nod: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1136 1136 欧拉函数 基准时间限制:1 秒 空间限制: ...

  8. inline-block元素间距

    做项目过程中发现元素设置为inline-block后,彼此之间会有间距,有时候不是我们想要的效果,这时候就需要将间距去除掉. 后来上网查了下,已有前人总结了不少好的方法.这里主要借鉴了张鑫旭博客中介绍 ...

  9. golang---文件读写

    func Create(name string) (file *File, err error) 直接通过纹面创建文件 func NewFile(fd uintptr, name string) *F ...

  10. Ubuntu使用MyEclipse闪退的解决办法

    修改myeclipse.ini文件, -Xmx512m-XX:MaxPermSize=512m-XX:ReservedCodeCacheSize=256m-Dosgi.nls.warnings=ign ...