php array map arraywalk,PHP array_map()、array_walk()、array_walk_recursive()函数

PHP array_map()、array_walk()、array_walk_recursive()函数

(2011-07-01 15:01:48)

标签:

函数

杂谈

PHP array_map()、array_walk()、array_walk_recursive()函数

function hyy_array_map(){

$parmnum = func_num_args();

if($parmnum<2){

throw new Exception("the number of parms is less than 2");

}

$function = func_get_arg(0);

if($function === null){

//throw new Exception("the function is null");

function hyy_array_map_default_func(){

return func_get_args();

}

$function = 'hyy_array_map_default_func';

}

if(!is_string($function) || !function_exists($function)){

throw new Exception("the function $function does not

exist");

}

if($parmnum==2){

$array = array();

$parm1 = func_get_arg(1);

if(!is_array($parm1)){

throw new Exception("parm 2 must be a array");

}

foreach($parm1 as $key=>$val){

$array[$key] = call_user_func($function,$val);

}

return $array;

}

$parmnum--;

$parms = func_get_args();

$array = array();

$maxcount = count($parms[1]);

$parms[1] = array_values($parms[1]);

for($i=2;$i<=$parmnum;$i++){

if($maxcount

$maxcount = count($parms[$i]);

}

$parms[$i] = array_values($parms[$i]);

}

for($i=0;$i

$parmstr = '';

for($j=1;$j<=$parmnum;$j++){

$parmstr .= ', $parms['.$j.']['.$i.']';

}

eval_r('$array[] =

call_user_func($function'.$parmstr.');');

}

return $array;

}

array_walk()函数

function hyy_array_walk(&$parm,$function){

$parmnum = func_num_args();

if($parmnum>3) {

throw new Exception('too many parms,the number of parms must not

be more than 3');

}

if(!is_array($parm)){

throw new Exception('the first parm must be a

array');

}

if(!is_string($function) || !function_exists($function)){

throw new Exception("the second parm is not a function's name or

the function does not exist");

}

$keys = array_keys($parm);

if($parmnum == 3){

$userdata = func_get_arg(2);

foreach($keys as $key){

eval_r($function.'($parm[$key],$key,$userdata);');

}

}else{

foreach($keys as $key){

eval_r($function.'($parm[$key],$key);');

}

}

}

array_walk_recursive()函数

function

hyy_array_walk_recursive(&$parm,$function){

$parmnum = func_num_args();

if($parmnum>3) {

throw new Exception('too many parms,the number of parms must not

be more than 3');

}

if(!is_array($parm)){

throw new Exception('the first parm must be a

array');

}

if(!is_string($function) || !function_exists($function)){

throw new Exception("the second parm is not a function's name or

the function does not exist");

}

$keys = array_keys($parm);

if($parmnum == 3){

$userdata = func_get_arg(2);

foreach($keys as $key){

if(is_array($parm[$key])){

hyy_array_walk_recursive($parm[$key],$function,$us erdata);

}else{

eval_r($function.'($parm[$key],$key,$userdata);');

}

}

}else{

foreach($keys as $key){

if(is_array($parm[$key])){

hyy_array_walk_recursive($parm[$key],$function);

}else{

eval_r($function.'($parm[$key],$key);');

}

}

}

}

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值