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 的用法的更多相关文章

  1. 【php学习】array_map,array_walk,array_filter的区别

    array_map(function($v){return $v+1;}, $array); array_walk($array, function($v, $k){...}); array_filt ...

  2. array_map,array_filter,array_walk区别

    这几个方法都有遍历数组,操作的过程. 很容易搞混.尤其很多人养成的编程习惯都是使用foreach来循环遍历.. 就举个简单例子. $a = array( 0,1,2,3,4,5,6,7,8,9 ); ...

  3. array_map、array_walk、array_filter三个函数的区别

    array_walk --- 使自定的函数能处理数组的每个元素 bool array_walk ( array &array, callback funcname [, mixed userd ...

  4. php array_map array_filter sort

    array_map — Applies the callback to the elements of the given arrays (处理映射) array_filter — Filters e ...

  5. 【转】php 之 array_filter、array_walk、array_map的区别

    [转]php 之 array_filter.array_walk.array_map的区别 原文:https://blog.csdn.net/csdnzhangyiwei/article/detail ...

  6. PHP中array_map与array_column之间的关系分析

    array_map()与array_column()用法如下: array_map();将回调函数作用到给定数组的单元上array_column();快速实现:将二维数组转为一维数组 array_co ...

  7. PHP中 array_map 与 array_column 之间的关系

    (PHP 5 >= 5.5.0) array_map()与array_column()用法如下: array_map();将回调函数作用到给定数组的单元上array_column();快速实现: ...

  8. php数组操作集锦- 掌握了数组操作, 也就掌握了php

    参考下面的文章, 是很好的: http://www.cnblogs.com/staven/p/5142515.html http://pcwanli.blog.163.com/blog/static/ ...

  9. PHP中的回调函数和匿名函数

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

随机推荐

  1. CLR内部异常(下)

    直接使用SEH 有些情况里直接使用SEH会更合适一些.特别是,如果需要在第一次遍历(first pass - SEH异常处理流程里的第一遍处理)时需要执行某些操作时,也就是在堆栈向上展开之前,SEH是 ...

  2. [USACO12MAR]花盆 二分 单调队列

    [USACO12MAR]花盆 二分 单调队列 存在一个长度为\(x\)的区间\([l,r]\),使得区间中最大值与最小值差至少为\(w\),求这个最小的\(x\) \(n\le 100000\),\( ...

  3. JavaScript高级程序编程(一)

    第一章 JavaScript简史  20170510 JavaScript 组成部分: 核心(ECMAScript)  文档对象模型(DOM)浏览器对象模型(BOM) Netscape Navigat ...

  4. 计蒜客 39270.Angel's Journey-简单的计算几何 ((The 2019 ACM-ICPC China Shannxi Provincial Programming Contest C.) 2019ICPC西安邀请赛现场赛重现赛

    Angel's Journey “Miyane!” This day Hana asks Miyako for help again. Hana plays the part of angel on ...

  5. Android入门教程(一)

    Android是什么? Android是基于Linux开发性内核的操作系统,该平台由操作系统,中间件,用户界面和应用软件组成.Android的基本信息:软件类型,APK,发行商:Google,最早版本 ...

  6. Java int 与 Integer 区别

    学习借鉴(其实搬了别人的好多)和自己的理解,可能会有较多错误,如有疑问联系我呀. int  是基本数据类型, Integer 是引用类型,也就是一个对象. int 储存的是数值,Integer 储存的 ...

  7. mysql 创建时间字段

    alter table table1 add order_date datetime null; mysql> select * from table1; +----------+------- ...

  8. React中父子组件传值

    一.首先我们先来看父组件向子组件传值 1.1 我们要明白父组件 --> 子组件 是通过props这个属性来传值的 我们来看父组件的代码 import React from 'react'; im ...

  9. ldap和phpldapadmin的安装部署

    LDAP 安装 一.安装LDAP 1. 安装包 yum install openssl-devel gcc libtool-ltdl-devel -y yum install openldap-ser ...

  10. 各大web服务器https的证书文件

    nginx  key+pem iis pfx+pfx-password.txt tomcat pfx+pfx-password.txt apache key+chain.crt+public.crt