array_maparray_walkarray_filter之间到底有什么区别.从文档中我可以看到,您可以传递回调函数来对提供的数组执行操作.但我似乎没有发现它们之间有什么特别的区别.

Do they perform the same thing?
Can they be used interchangeably?

如果它们有任何不同,我将感谢您提供的示例.

推荐答案

  • Changing Values:
  • Array Keys Access:
  • Return Value:
    • array_map返回新数组,array_walk仅返回true.因此,如果您不想因为遍历一个数组而创建数组,则应该使用array_walk.
  • Iterating Multiple Arrays:
    • array_map还可以接收任意数量的数组,它可以并行地对它们进行迭代,而array_walk只对一个数组进行操作.
  • Passing Arbitrary Data to Callback:
    • array_walk可以接收一个额外的任意参数传递给回调函数.自PHP5.3(引入anonymous functions)以来,这一点基本上是无关紧要的.
  • 返回数组的长度:

例子:

<pre>
<?php

$origarray1 = array(2.4, 2.6, 3.5);
$origarray2 = array(2.4, 2.6, 3.5);

print_r(array_map('floor', $origarray1)); // $origarray1 stays the same

// changes $origarray2
array_walk($origarray2, function (&$v, $k) { $v = floor($v); }); 
print_r($origarray2);

// this is a more proper use of array_walk
array_walk($origarray1, function ($v, $k) { echo "$k => $v", "\n"; });

// array_map accepts several arrays
print_r(
    array_map(function ($a, $b) { return $a * $b; }, $origarray1, $origarray2)
);

// select only elements that are > 2.5
print_r(
    array_filter($origarray1, function ($a) { return $a > 2.5; })
);

?>
</pre>

结果:

Array
(
    [0] => 2
    [1] => 2
    [2] => 3
)
Array
(
    [0] => 2
    [1] => 2
    [2] => 3
)
0 => 2.4
1 => 2.6
2 => 3.5
Array
(
    [0] => 4.8
    [1] => 5.2
    [2] => 10.5
)
Array
(
    [1] => 2.6
    [2] => 3.5
)

Php相关问答推荐

p a/a/p的x路径 Select ,但不是p somethext a链接/a或某些文本/p>

在WooCommerce中处理客户总支出中的退款

PHP:从数组中获取唯一的数字组合

在函数内部获取一致的单选按钮值以更新WordPress用户数据

从含有特殊字符的ANSI文本文件中读取数据是在移值,为什么?

筛选器具有多个查询之一

服务器迁移后无法上载文件-可能存在权限问题

如果日期是过go 日期,则隐藏事件发布类型

如何使用定制的StateProvider设置JsonLd@上下文?

如何在WordPress REST API中判断应用程序密码

如何配置我的.env文件以在laravel的一个项目中连接两个不同的数据库?

Laravel自定义验证规则更正

强制客户在注册时 Select WooCommerce角色

如何解决 Laravel 外键错误?

使用自定义规则进行 Livewire 验证不会显示错误

如何通过帖子自定义元数据进行查询

如何在WooCommerce管理产品列表中显示运输类别列

为什么foreach循环会输出每个结果?

Symfony 迁移判断器在我的工作中失控

Laravel 响应 html 默认页面忽略控制器