php array_walk使用的问题

漫步的猪 2018-03-01 05:14:33

$id=12;
$arr=[1,2];
array_walk($arr,function($value,$key) use($id){
$arr[$key]['group_id']=$value;
$arr[$key]['mid']=$id;
});

将$arr转换为下面形式
//[
// 0=>['group_id'=>1,'mid'=>12],
// 1=>['group_id'=>2,'mid'=>12];
//]
为啥我上面的代码没有生效,哪块出问题了?
...全文
592 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2018-03-13
  • 打赏
  • 举报
回复
use 中文释义:使用 function(...) use($External) 是 php 的闭包定义形式,没有为什么,记着就行 他表示函数体内可以使用的额外的数据(因为回调函数的参数都是预先定义好的) 有点类似 global $arr,但 global $arr 要求 $arr 是全局变量,而 use($External) 没这个要求
Lance-L 2018-03-13
  • 打赏
  • 举报
回复
引用 2 楼 sanlo_up 的回复:
楼上正解,你也可以用global $arr取得数组,还有本人小白,后面的use()什么意思?
因为1楼使用了闭包的方式,在闭包里不能调用所在代码块的上下文变量,就需要使用use关键将对应变量引入,然后才能使用
sanlo_up 2018-03-07
  • 打赏
  • 举报
回复
楼上正解,你也可以用global $arr取得数组,还有本人小白,后面的use()什么意思?
xuzuning 2018-03-02
  • 打赏
  • 举报
回复
$id=12;
$arr=[1,2];
array_walk($arr,function(&$value,$key) use($id){
  $value = ['group_id' => $value, 'mid' => $id];
});
print_r($arr);

Array
(
    [0] => Array
        (
            [group_id] => 1
            [mid] => 12
        )

    [1] => Array
        (
            [group_id] => 2
            [mid] => 12
        )

)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧