array_filter、array_walk、array_map的区别

本文介绍了PHP中三种数组处理函数:array_filter用于筛选数组元素;array_map实现数组元素的转换;array_walk则遍历数组并执行回调函数。通过具体示例展示了如何使用这些函数来简化编程任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

array_filter返回的是一个数组,依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 input数组的当前值会被包含在返回的结果数组中。数组的键名保留不变


  1. <?php  
  2. $arr=array(  
  3. 1,2,3,4,5,6  
  4. );  
  5. function filter($var){  
  6.     if($var%2==0)  
  7.         return true;  
  8. }  
  9. $data=array_filter($arr,"filter");  
  10. $data=array(2,4,6);  
  11. ?>  

array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback接受的参数数目应该和传递给 array_map() 函数的数组数目一致。


  1. <?php  
  2. $arr1=array('linux','Php','JAVA');  
  3. array_map('strtoupper',$arr1);  
  4. ?>  

array_walk() 不会受到 array内部数组指针的影响。array_walk()会遍历整个数组而不管指针的位置。

用户不应在回调函数中改变该数组本身。例如增加/删除单元,unset 单元等等。如果 array_walk()作用的数组改变了,则此函数的的行为未经定义,且不可预期。注意回调函数接收的前两个参数第一个是值,第二个是键值,如果有第三个参数,则数组所有的值都共用这个参数


  1. <?php?  
  2. function exchange($val,$key)  
  3. {  
  4.     echo $val;  
  5.     echo $key;  
  6.       
  7. }  
  8. $arr2=array('a'=>'linux','b'=>'php','c'=>'java','d'=>'mysql');  
  9. array_walk($arr2,'exchange');  
  10. >  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值