栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

array_map,array_walk和array_filter之间的区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

array_map,array_walk和array_filter之间的区别

  • 更改值:
    • array_map
      可以时不能更改输入数组内的值
      array_walk
      ;特别是,
      array_map
      永远不要更改其参数。
  • 阵列键访问:
    • array_map
      不能使用阵列键操作,
      array_walk
      可以。
  • 返回值:
    • array_map
      返回一个新数组,
      array_walk
      仅返回
      true
      。因此,如果您不想由于遍历一个数组而创建一个数组,则应使用
      array_walk
  • 迭代多个数组:
    • array_map
      它还可以接收任意数量的数组,并且可以并行地对其进行迭代,而
      array_walk
      只能在一个数组上进行操作。
  • 将任意数据传递给回调:
    • array_walk
      可以接收一个额外的任意参数以传递给回调。自PHP 5.3(引入匿名函数时)以来,这几乎无关紧要。
  • 返回数组的长度:
    • 得到的数组的
      array_map
      长度与最大输入数组的长度相同;
      array_walk
      不返回数组,但同时不能更改原始数组的元素数;
      array_filter
      根据过滤功能仅选择数组元素的子集。它确实保留了密钥。

例:

<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 $origarray2array_walk($origarray2, function (&$v, $k) { $v = floor($v); }); print_r($origarray2);// this is a more proper use of array_walkarray_walk($origarray1, function ($v, $k) { echo "$k => $v", "n"; });// array_map accepts several arraysprint_r(    array_map(function ($a, $b) { return $a * $b; }, $origarray1, $origarray2));// select only elements that are > 2.5print_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.41 => 2.62 => 3.5Array(    [0] => 4.8    [1] => 5.2    [2] => 10.5)Array(    [1] => 2.6    [2] => 3.5)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400842.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号