009——数组(九) each list array_map array_walk array_walk_recursive
<?php
/**
* 9 数组 each list array_map array_walk array_walk_recursive
*/ //each() 返回数组中的键名和键值生成新数组,如果指针结束,返回布尔值false
/*
$array1=array('webname'=>"博客",'weburl'=>"bbs.blog.com");
$array_new=each($array1); //生成新的数组:
print_r($array_new);
//输出:Array ( [1] => 博客 [value] => 博客 [0] => webname [key] => webname )
$array_new=each($array1); //生成新的数组:
print_r($array_new);
//输出:Array ( [1] => bbs.blog.com [value] => bbs.blog.com [0] => weburl [key] => weburl )
*/ //list() 将索引数组的值,赋给变量
/*$array1=array("博客","bbs.blog.com");
list($value)=$array1;
echo $value;//输出:博客*/ /*$array1=array('webname'=>"博客",'weburl'=>"bbs.blog.com");
while (list($k,$v)=each($array1)){
echo "键名:".$k."=>"."键值".$v;
}//输出:键名:webname=>键值博客键名:weburl=>键值bbs.blog.com*/ //array_map() 数组的每一个元素应用,都经过回调函数处理,返回值是处理过的元素组成的新数组
/*$blog=array(11,22,33,440,55,660);
function func_map($v){
echo $v; //输出:11223344055660
}
$array_new=array_map('func_map',$blog);*/ /*$blog=array(11,22,33,440,55,660);
function func_map($v){
if ($v>100){
return $v;
}
}
$array_new=array_map('func_map',$blog);
print_r($array_new);//输出:Array ( [0] => [1] => [2] => [3] => 440 [4] => [5] => 660 )*/ /*$blog=array(11,22,33,440,55,660);
function func_map($v){
return $v+10;
}
$array_new=array_map('func_map',$blog);
print_r($array_new);//输出:Array ( [0] => 21 [1] => 32 [2] => 43 [3] => 450 [4] => 65 [5] => 670 )*/ /*$arr1=array(1,2,3,4,5);
$arr2=array("a","b","c","d","e");
function func4($arr1,$arr2){
//echo $arr1;//输出:12345
return array($arr2=>$arr1);
} $arr0=array_map(func4,$arr1,$arr2);
print_r($arr0);
//输出:Array ( [0] => Array ( [a] => 1 ) [1] => Array ( [b] => 2 ) [2] => Array ( [c] => 3 ) [3] => Array ( [d] => 4 ) [4] => Array ( [e] => 5 ) )*/ //array_walk() 数组中的每一个元素,应用回调函数,成功返回true,失败返回false
/*$array1=array('张三'=>1000,'李四'=>900,'王五'=>3000,'赵六'=>400);
function func_walk(&$v,$k){
if ($v<1000){
$v+=500;
}
}
if (array_walk($array1,func_walk)){
echo "加工资成功:";
print_r($array1);
//输出:加工资成功:Array ( [张三] => 1000 [李四] => 1400 [王五] => 3000 [赵六] => 900 )
}*/ /*$array1=array('张三'=>1000,'李四'=>900,'王五'=>3000,'赵六'=>400);
function func_walk(&$v,$k,$c=""){
if ($v<1000){
$v+=$c;
}
}
if (array_walk($array1,func_walk,1000)){
echo "加工资成功:";
print_r($array1);
//输出:加工资成功:Array ( [张三] => 1000 [李四] => 1900 [王五] => 3000 [赵六] => 1400 )
}*/ //array_walk_recursive() 递归的操作数组,使数组中的元素应用回调函数
$arr5 = array(
array('uname' => '李四', 'money' => 100),
array('uname' => '张三', 'money' => 600),
array('uname' => '王五', 'money' => 700),
array('uname' => '赵六', 'money' => 300)
); function fun5(&$v,$k){
//echo $v; //输出:李四500张三600王五700赵六800
if ($k=='money' && $v<300){
$v+=1000;
}
}
array_walk_recursive($arr5,'fun5');
print_r($arr5);//输出:Array ( [0] => Array ( [uname] => 李四 [money] => 1100 ) [1] => Array ( [uname] => 张三 [money] => 600 ) [2] => Array ( [uname] => 王五 [money] => 700 ) [3] => Array ( [uname] => 赵六 [money] => 300 ) )
009——数组(九) each list array_map array_walk array_walk_recursive的更多相关文章
- 空循环比较 for foreach array_map array_walk
申请一个数组,然后不断的跑空循环,看看执行时间 for循环 foreach (不使用键) foreach(使用键) array_map array_walk 查看效率速度发现很明显 是foreach更 ...
- 将对象转为数组方法:延伸array_map函数在PHP类中调用内部方法
public static function objectToArray($d) { if (is_object($d)) { $d = get_object_vars($d); } if (is_a ...
- array_map array_walk
$config = [ => [], => [], => [] ]; array_map(function($key) use ($config){ print_r($key); d ...
- php中多图上传采用数组差集处理(array_diff,array_map)
//删除旧有的图片 //新增数组 $arr2=array(); //原有数组 $old_pics = ReportPic::find()->where(['report_id' => $i ...
- 浅析 array_map array_walk
map 主要是为了得到你的回调函数处理后的新数组,要的是结果. walk 主要是对每个参数都使用一次你的回调函数,要的是处理的过程. walk 可以认为提供额外参数给回调函数,map不可 ...
- array_filter、array_map、array_walk解释
/** * array_filter 用回调函数处理数组中的各个元素, * 重点在于过滤(而不是新增)某个元素,当你处理到一个元素时, * 如果返回了false,那么这个元素将会被过滤掉.PS:保持了 ...
- 【php学习】array_map,array_walk,array_filter的区别
array_map(function($v){return $v+1;}, $array); array_walk($array, function($v, $k){...}); array_filt ...
- 【转】php 之 array_filter、array_walk、array_map的区别
[转]php 之 array_filter.array_walk.array_map的区别 原文:https://blog.csdn.net/csdnzhangyiwei/article/detail ...
- array_map、array_walk、array_filter三个函数的区别
array_walk --- 使自定的函数能处理数组的每个元素 bool array_walk ( array &array, callback funcname [, mixed userd ...
随机推荐
- 解决wordcloud导出图片不清楚
使用WordCloud生成词云图片 本文详细介绍参考自:https://www.jianshu.com/p/fdd0acccf1c5 wordcloud开源项目:https://github.com/ ...
- 论文笔记:dropout
Improving neural networks by preventing co-adaptation of feature detectors arXiv preprint arXiv: 120 ...
- linux在文件中包含某个关键词的指定行插入内容
1. 在包含某个关键字的行上面插入一行文字 sed -i '/wangzai/i\doubi' 1.txt 把内容doubi插入到包含wangzai关键字的上一行 2. 在包含某个关键字的行下面插入一 ...
- httpd sshd firewalld 很多服务后面的d是什么意思
在操作系统中,一般系统的服务都是以后台进程的方式存在,而且都会常驻系统中,直到关机才结束.这类服务也称Daemon,在Linux系统中就包含许多的Daemon. 判断Daemon最简单的方法就是从名称 ...
- Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)返回非映射实体类的解决方法
Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)易错使用 一直用ORM,今天用JdbcTemplate ...
- 20145329《Java程序设计》第四周学习总结
教材学习内容总结 封装.继承.多态 封装:封装类私有数据,让用户无法直接存取. 继承: 定义:避免多个类间重复定义共同行为,就是相同的代码提升为父类,java中只能继承一个父类.用继承的方式编写代码可 ...
- scala(一)方法&函数
写在前面 众所周知,scala一向宣称自己是面向函数的编程,(java表示不服,我是面向bean的编程!)那什么是函数? 在接触java的时候,有时候用函数来称呼某个method(实在找不出词了),有 ...
- Putting Apache Kafka To Use: A Practical Guide to Building a Stream Data Platform-part 1
转自: http://www.confluent.io/blog/stream-data-platform-1/ These days you hear a lot about "strea ...
- AVL树 - 学习笔记
2017-08-29 14:35:55 writer:pprp AVL树就是带有平衡条件的二叉查找树.每个节点的左子树和右子树高度相差最多为1的二叉查找树 空树的高度定为-1 对树的修正称为旋转 对内 ...
- Sql Server的还原和导入数据效果不一样
SQL SERVER2012数据库,导入数据和通过备份还原的效果不一样,如果之前的数据库结构修改过,那么另一个数据在导这个数据库时就会有问题,数据有丢失,这时候就要通过备份还原来同步数据.