数组助手类 ArrayHelper

用原生PHP从一个对象、数组、或者包含这两者的一个复杂数据结构中获取数据是非常繁琐的。 你首先得使用 isset 检查 key 是否存在, 然后如果存在你就获取它,如果不存在, 则提供一个默认返回值。Yii 提供了一个非常方便的方法来做这件事ArrayHelper

#use yii\helpers\ArrayHelper;
$token='test2'
$user = User::find()->where(['auth_key' => $token])->asArray()->one();
var_dump($user);

在这里插入图片描述

原生写法

$value = isset($user['id']) ? $user['id']: null;

ArrayHelper

方法的第一个参数是我们从哪里获取值。第二个参数指定了如何获取数据, 它可以是下述几种类型中的一个:
1、数组键名或者欲从中取值的对象的属性名称;
2、以点号分割的数组键名或者对象属性名称组成的字符串,上例中使用的参数类型就是该类型;
3、返回一个值的回调函数。

#获取值
$value = ArrayHelper::getValue($user, 'id');
var_dump($value);//string '255'
#获取值,无则输出默认值默认ID,不设置第三个参数,默认值为null
$value = ArrayHelper::getValue($user, 'id','默认ID');
var_dump($value);//string '255' (length=3)
//当$token='无数据时';
var_dump($value);//string '默认ID' (length=8)
#回调函数的写法
$value = ArrayHelper::getValue($user, function ($user,$defaultValue){
     echo $user['mobile']. '-' . $user['username'];
     //string '17721318888-patti' (length=17)
 });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值