php数组迭代器作用,PHP 迭代器实现数组元素应用回调函数

很多时候,通过PHP手册,我们就可以找到关于数组元素应用回调函数的一些函数。这也是为啥PHP这么神奇的地方。

我们很容易想到这个函数 array_map

var_dump(array_map( function($v){

if( preg_match('/^[a-zZ-a]/',$v) )

{return $v.' 成功';}

return $v;

},['ceshi1','23'] ) );

测试结果:array(2) { [0]=> string(13) "ceshi1 成功" [1]=> string(2) "23" };

下面通过迭代器方式实现

class MapIterator extends  ArrayIterator

{

//函数存储站

private $callback;

//构造函数

function __construct( array $arrayList,callable $callback){

parent::__construct( $arrayList );

$this->callback = $callback;

}

function current()

{

parent::current();

return call_user_func($this->callback, $arrayList);

}

}

//下面开始测试

$b=[];

$hehe = function( $a)

{

if( preg_match('/^[a-zZ-a]/',$a) )

global $b;//使用全局 不然每次初始化了。

{

$b[]=$a.' 成功';

}

$b[]=$a;

}

$map = new MapIterator( ['ceshi1','23'],$hehe);

while( $map->valid()  )

{

$map->current();

$map->next();

}

var_dump($b);

//测试结果 :array(3) { [0]=> string(13) "ceshi1 成功" [1]=> string(6) "ceshi1" [2]=> string(2) "23" }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值