2018-12-25 16:11:14 2853次浏览 2条回答 0 悬赏 100 金钱

使用 arrayHelpergetColumn 方法时,举例如下:

* $user_id = Yii::$app->request->get('user_id');
* $data = [
*     ['user_id'=>1,'value'=>'beijing'],
*     ['user_id'=>2,'value'=>'nanjing'],
*     ['user_id'=>1,'value'=>'tianjing'], 
*     ['user_id'=>3,'value'=>'hangzhou']
* ];
* $address = arrayHelper::getColumn($data,function($element){
* if($element['user_id']==$user_id) {
* return $element['value'];
* }
* });
* $address = array_filter($address);

为什么会提示我,$user_id 未定义 Undefined variable: user_id,也就是说不能使用 $element['user_id'] == $user_id 这种判断方法?

最佳答案

  • gahdwaf 发布于 2018-12-25 16:59 举报
    $user_id = Yii::$app->request->get('user_id');
    $data = [
        ['user_id' => 1, 'value' => 'beijing'],
        ['user_id' => 2, 'value' => 'nanjing'],
        ['user_id' => 1, 'value' => 'tianjing'],
        ['user_id' => 3, 'value' => 'hangzhou'],
    ];
    $address = arrayHelper::getColumn($data, function ($element) use ($user_id) {
        if ($element['user_id'] == $user_id) {
            return $element['value'];
        }
    });
    $address = array_filter($address);
    
  • 回答于 2018-12-27 09:42 举报

    嘿嘿,我就奇怪了,这么简单的错误都说出来。我的第一感觉就是你的php基础还不行。这是匿名函数使用外部变量的问题。你可以先看下use语法吧。跟Yii2,getColumn啥的没绝对关系,它们只是碰巧用到了匿名函数,而你一直就不懂,直到今天。。。。。。

您需要登录后才可以回答。登录 | 立即注册
风吟铃歌
见习主管

风吟铃歌 北京

注册时间:2018-07-18
最后登录:2021-06-30
在线时长:6小时37分
  • 粉丝1
  • 金钱180
  • 威望0
  • 积分240

热门问题