数组处理 array_map()

array_map(function,array1,array2,array3...)返回用户自定义函数作用后的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

示例:只有一个参数
<?php
function myfunction($v) 
{
    if ($v==="Dog"){
    	return "Fido";
    }
    return $v;
}
$a = array("Horse","Dog","Cat");
print_r(array_map("myfunction",$a));
?>

输出:
Array ( [0] => Horse [1] => Fido [2] => Cat )

两个参数:

<?php
function myfunction($v1,$v2) 
{
    if ($v1===$v2){
    	return "same";
    }
    return "different";
}
$a1 = array("Horse","Dog","Cat");
$a2 = array("Cow","Dog","Rat");
print_r(array_map("myfunction",$a1,$a2));
?>

输出:
Array ( [0] => different [1] => same [2] => different )

自定义函数名设置为 null 时的情况:

<?php
$a1 = array("Dog","Cat");
$a2 = array("Puppy","Kitten");
print_r(array_map(null,$a1,$a2));
?>

输出:
Array (
[0] => Array ( [0] => Dog [1] => Puppy )
[1] => Array ( [0] => Cat [1] => Kitten )
)

使用闭包:


<?php
$a = [];
$b = ["Horse","Dog","Cat"];
 
array_map(function ($value) use (&$a){
    if($value==="Dog"){$a[] = $value;}
},$b);
print_r($a);
 
$a1 = ["Horse","Dog","Cat"];
$a2 = ["Cow","Dog","Rat"];
$a3 = [];
array_map(function ($v1,$v2) use (&$a3) {  
  if($v1==$v2){
      $a3[] = $v1;
  }
},$a1,$a2);

$c = ["Cow","Dog"];
array_map(function ($v1) {
   return $v1.'--1'
},$c);
print_r($c);
?>

输出:
#$a
Array ( [0] => "Dog" )
#$a3
Array ( [0] => "Dog" )
#$c
Array ( [0] => "Cow--1" [1] => "Dog--1")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值