[Yii2小心肝儿]ArrayHelper之getColumn方法详解

\yii\helpers\ArrayHelper::getColumn ( $array, $name, $keepKeys = true )

这是一个非常有用的方法,它将一个二维数组或对象集合根据某列返回结果数组。

案例1:我们想获取一个二维数组所有key=name的值,并数组类型返回。

$arr = [
	0=>['id'=>1,'name'=>'abei'],
	1=>['id'=>2,'name'=>'beige'],
	3=>['id'=>3,'name'=>'liuhuan']
];

var_dump(\yii\helpers\ArrayHelper::getColumn($arr,'name'));
//	返回 ['abei','beige','liuhuan']

案例2:我们想得到一个二维数组中所有key=name的值,并且将这些值都在末尾加上#号。将第二个参数做成自定义函数回调即可。

$arr = [
	0=>['id'=>1,'name'=>'abei'],
	1=>['id'=>2,'name'=>'beige'],
	3=>['id'=>3,'name'=>'liuhuan']
];

var_dump(\yii\helpers\ArrayHelper::getColumn($arr,function($element){
	return $element['name'].'#';
}));
//	返回['abei#','beige#','liuhuan#']

案例3:我们从数据库获取所有的会员,并且将会员的用户名ID放到一个数组里。

$users = User::find()->all();
var_dump(\yii\helpers\ArrayHelper::getColumn($users,'id'));
//	返回[1,2,3,4,xxxxx]

对于此函数的使用,要注意以下几点:

  • 第三个参数$keepKeys的使用,默认为真,如果设置为假,则结果数组不会保留原有索引,而是从0开始重新索引(即便之前非数字索引)
  • 该函数会遍历原数组,所以当我们对$name指定错误或未能匹配到,将返回null值,但是该数组值仍然被站位。

转载于:https://my.oschina.net/abei2017/blog/830878

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值