array_walk、array_map、array_filter 的用法
array_walk、array_map、array_filter 和 foreach 都有循环对数组元素进行处理的功能。
一、array_walk 用法
1、循环数组,回调处理(并不修改数组元素的值,而是跳出去做其他的事情[回调的定义])
如:
$arr = [
['name' => 'A', 'age' => 18],
['name' => 'B', 'age' => 11],
];
array_walk($arr, function ($value) {
//做其他的逻辑处理,不对数组元素进行处理
echo "name:" . $value['name'] . ', age:' . $value['age'] . "\n";
});
输出的结果:
name:A, age:18
name:B, age:11
2、循环数组,对数据的元素进行处理
如:
$arr = [
['name' => 'A', 'age' => 18],
['name' => 'B', 'age' => 11],
]; //使用引用
array_walk($arr, function (&$value) {
//修改元素的 age 值
$value['age'] = $value['age'] - 1; }); print_r($arr);
输出结果:
Array
(
[0] => Array
(
[name] => A
[age] => 17
)
[1] => Array
(
[name] => B
[age] => 10
)
)
二、array_map 用法
array_map 的作用其实和array_walk 的引用差不多,就是循环数组,对数组元素的值进行处理;
三、array_filter 用回调函数过滤数组中的单元
通过 array_filter 处理过的数组,数字索引的数组会是不连续的,要通过 array_values()处理整理数组
function odd($var)
{
// returns whether the input integer is odd
return($var & 1);
} function even($var)
{
// returns whether the input integer is even
return(!($var & 1));
} $array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12); echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
array_walk、array_map、array_filter 的用法的更多相关文章
- 【php学习】array_map,array_walk,array_filter的区别
array_map(function($v){return $v+1;}, $array); array_walk($array, function($v, $k){...}); array_filt ...
- array_map,array_filter,array_walk区别
这几个方法都有遍历数组,操作的过程. 很容易搞混.尤其很多人养成的编程习惯都是使用foreach来循环遍历.. 就举个简单例子. $a = array( 0,1,2,3,4,5,6,7,8,9 ); ...
- array_map、array_walk、array_filter三个函数的区别
array_walk --- 使自定的函数能处理数组的每个元素 bool array_walk ( array &array, callback funcname [, mixed userd ...
- php array_map array_filter sort
array_map — Applies the callback to the elements of the given arrays (处理映射) array_filter — Filters e ...
- 【转】php 之 array_filter、array_walk、array_map的区别
[转]php 之 array_filter.array_walk.array_map的区别 原文:https://blog.csdn.net/csdnzhangyiwei/article/detail ...
- PHP中array_map与array_column之间的关系分析
array_map()与array_column()用法如下: array_map();将回调函数作用到给定数组的单元上array_column();快速实现:将二维数组转为一维数组 array_co ...
- PHP中 array_map 与 array_column 之间的关系
(PHP 5 >= 5.5.0) array_map()与array_column()用法如下: array_map();将回调函数作用到给定数组的单元上array_column();快速实现: ...
- php数组操作集锦- 掌握了数组操作, 也就掌握了php
参考下面的文章, 是很好的: http://www.cnblogs.com/staven/p/5142515.html http://pcwanli.blog.163.com/blog/static/ ...
- PHP中的回调函数和匿名函数
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
随机推荐
- circus 做为批处理的守护进程
circus 是集成了zeromq,使用python编写的一个进程以及socket 管理工具,使用circus 的进程管理,我们可以用来进行批任务的 处理,同时又能保证任务的准确 项目使用docker ...
- mysql 存储过程的定义和使用
1)创建存储过程:并循环插入数据 create PROCEDURE sp_name() BEGIN DECLARE i int; ; DO ,); ; end while; END
- 洛谷P4047 [JSOI2010]部落划分题解
洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...
- HTML5之图片在Retina屏的常用几种处理方式
Media Queries使用css3的媒体查询实现高清屏的图片处理. @media only screen and (-webkit-min-device-pixel-ratio: 1.5), on ...
- shell脚本编程之变量的小用法
变量赋值 ${parameter:-word}:如果parameter为空或未定义,则变量展开为"word":否则,展开为parameter的值: ${parameter:+wor ...
- mysql right() 函数
mysql> ); +---------------------+ | right() | +---------------------+ | dedede | +--------------- ...
- win10 自带计算器删除了怎么办
win+S后输入Powershell,以管理员身份运行后,使用下面的命令:重要的说三遍:以管理员身份运行!以管理员身份运行!以管理员身份运行!Get-AppxPackage *calculator* ...
- rsync实时同步
假设有如下需求: 假设两个服务器: 192.168.0.1 源服务器 有目录 /opt/test/ 192.168.0.2 目标服务器 有目录 /opt/bak/test/ 实现的目的就是保持这两 ...
- free中buffer 与 cache 的区别
通常人们所说的Cache就是指缓存SRAM. SRAM叫静态内存,“静态”指的是当我们将一笔数据写入SRAM后,除非重新写入新数据或关闭电源,否则写入的数据保持不变. 由于CPU的速度比内存和硬盘的速 ...
- Nginx配置简单基于域名的虚拟主机
首先修改hosts文件,让浏览器在看到a.com或是www.a.com的网址时知道上哪里去找: # Copyright (c) 1993-2009 Microsoft Corp. # # This i ...