Yii2 数组助手类arrayHelper

Posted Chrdai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2 数组助手类arrayHelper相关的知识,希望对你有一定的参考价值。

数组助手类 ArrayHelper

1、什么是数组助手类

Yii 数组助手类提供了额外的静态方法,让你更高效的处理数组。

a、获取值(getValue)

class User
{
  public $name = \'Alex\';
}
$array = [   \'foo\' => [     \'bar\' => new User(),ddd   ] ]

获取 name 的值

php 方法:

$value = isset($array[\'foo\'][\'bar\']->name) ? $array[\'foo\'][\'name\'] : null;

ArrayHelper 方法:

$value = ArrayHelper::getValue($array,\'foo.bar.name\');

2、获取列(getColumn)

从多维数组或者对象数组中获取某列的值

$data = [
  [\'id\' => \'123\',\'data\' => \'abc\'], // key 相当于对象的属性名,value 相当于对象的属性值
  [\'id\' => \'456\',\'data\' => \'def\'],
]

ArrayHelper 方法:

$ids = ArrayHelper::getColumn($data,\'id\');

结果:[\'123\',\'456\'];

3、建立映射表(map)

可以使用 map 方法从一个多维数组或者对象数组中取出数据,建立一个映射表(键值对数组),
在 map 方法的参数列表中指定了预构建的映射表的键名和值。

$array = [
[\'id\'=>\'123\',\'name\'=>\'aaa\',\'email\'=>\'x\'],
[\'id\'=>\'456\',\'name\'=>\'bbb\',\'email\'=>\'y\'],
[\'id\'=>\'789\',\'name\'=>\'ccc\',\'email\'=>\'z\'],
]
// ArrayHelper 方法:
$result = ArrayHelper::map($array,\'id\',\'name\');
/*
结果:
[
  \'123\' => \'aaa\'
  \'456\' => \'bbb\'
  \'789\' => \'ccc,
]
*/
$res = ArrayHelper::map(User::find()->asArray()->all(),\'id\',\'username\');
// User::find()=>asArray()->all(); 将 user 表的所有数据查询出来,返回结果为一个 二维数组
var_dump($res);

 

注:本文为作者(44106-kangaroo) 看完魏羲教你学Yii2.0 视频后所记,如有转载请注明出处:http://www.cnblogs.com/chrdai/p/8006752.html

 

以上是关于Yii2 数组助手类arrayHelper的主要内容,如果未能解决你的问题,请参考以下文章

如何在yii2中创建名称值对数组

YII2 获取 id 不等于数组元素的表行

yii2中的自动完成

YII2中的Html助手和Request组件

[moka同学笔记]yii2.0 dropdownlist的简单使用

YII2 广告 html 标签到下拉列表