关于 PHP 函数 array walk 的一些想法

发布于 2024-12-04 21:43:08 字数 1722 浏览 7 评论 0

array_walk

(PHP 4, PHP 5, PHP 7) array_walk — 使用用户自定义函数对数组中的每个元素做回调处理

说明

bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )

将用户自定义函数 funcname 应用到 array 数组中的每个单元。

array_walk() 不会受到 array 内部数组指针的影响。array_walk() 会遍历整个数组而不管指针的位置。

参数

  • array
    • 输入的数组。
  • callback
    • 典型情况下 callback 接受两个参数。array 参数的值作为第一个,键名作为第二个。
  • Note:
    • 如果 callback 需要直接作用于数组中的值,则给 callback 的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。
  • Note:
    • 参数数量超过预期,传入内置函数 (例如 strtolower()), 将抛出警告,所以不适合当做 funcname。 只有 array 的值才可以被改变,用户不应在回调函数中改变该数组本身的结构。例如增加/删除单元,unset 单元等等。如果 array_walk() 作用的数组改变了,则此函数的的行为未经定义,且不可预期。
  • userdata
    • 如果提供了可选参数 userdata,将被作为第三个参数传递给 callback funcname。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE。

范例

<?php
$graphics_card = [
    [
        'brand'=>'华硕',
        'model'=>'GTX980(Ti)',
        'status'=>1,
    ],
    [
        'brand'=>'技嘉',
        'model'=>'GTX970',
        'status'=>0,
    ],
    [
        'brand'=>'微星',
        'model'=>'GTX960',
        'status'=>1,
    ],
    [
        'brand'=>'七彩虹',
        'model'=>'GTX950',
        'status'=>0,
    ],
];

array_walk($graphics_card, function(&$item){
    $item['brand'] = '按摩店';
    $item['model'] = '1080';
});
var_dump($graphics_card);

array_map(function($key) use (&$graphics_card) {
    $graphics_card[$key]['brand'] = '英伟达';
    $graphics_card[$key]['model'] = '泰坦';
}, array_keys($graphics_card));
var_dump($graphics_card);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

单身狗的梦

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

浪漫人生路

文章 0 评论 0

620vip

文章 0 评论 0

羞稚

文章 0 评论 0

走过海棠暮

文章 0 评论 0

你好刘可爱

文章 0 评论 0

陌若浮生

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文