数组助手类 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的更多相关文章

  1. php 数组助手类

    ArrayHelper.php <?php /** * php 数组助手类 * Class ArrayHelper * @package app\helper */ class ArrayHel ...

  2. Yii的数组助手类

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

  3. ADO.NET数据库操作助手类

    SQL语句操作增删查改助手类 using System; using System.Collections.Generic; using System.Configuration; using Sys ...

  4. Java学习笔记七——数组工具类Arrays

    数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...

  5. 【C#】SQL数据库助手类2.0(自用)

    using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...

  6. 数组工具类 - ArrayUtil.java

    数组工具类,提供数组.对象之间转换的方法. 源码如下:(点击下载 - ArrayUtil.java .commons-lang-2.6.jar) import java.lang.reflect.Ar ...

  7. java数组 数组工具类Arrays

    一.数组 1.java有严格的数据类型限制,一个数组只能声明一个数据类型,存放同一种数据类型. 2.虽然只能存放一种数据类型,假设A , 如果数据类型B 继承A,依然能存放进入数组. 3.数组的初始化 ...

  8. java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象

    1. java.util.Arrays  数组工具类    Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...

  9. AES加密解密 助手类 CBC加密模式

    "; string result1 = AESHelper.AesEncrypt(str); string result2 = AESHelper.AesDecrypt(result1); ...

随机推荐

  1. python:字符串转换成字节的三种方式及字符转码问题

    str='zifuchuang' 第一种 b'zifuchuang'第二种bytes('zifuchuang',encoding='utf-8')第三种('zifuchuang').encode('u ...

  2. C#学习-类的成员

    定义完类之后,还需在类中定义成员. 类的成员包括字段.属性.方法和构造函数等,它们与类一样,也都有自己的访问权限.以下是 public,同一个程序集或引用该程序集的其他程序集都可以访问 private ...

  3. C#连接Oracle错误:OCIEnvCreate 失败,返回代码为 -1

    处理某些数据需要从Oracle里读取数据 因为数据不多,简单方便直接用 System.Data.OracleClient 添加引用,写sql语句一气呵成,运行立刻报错 从没见过这错误啊… 上网搜索之… ...

  4. [转] ReactJS之JSX语法

    JSX 语法的本质目的是为了使用基于 xml 的方式表达组件的嵌套,保持和 HTML 一致的结构,语法上除了在描述组件上比较特别以外,其它和普通的 Javascript 没有区别. 并且最终所有的 J ...

  5. pycharm中出现的错误

    错误1 在pycharm上安装TensorFlow运行import tensorflow时报错: File , in _find_and_load SystemError: PyEval_EvalFr ...

  6. 【JavaScript】浏览器

    No1: [window]全局作用域,而且表示浏览器窗口 innerWidth和innerHeight属性,可以获取浏览器窗口的内部宽度和高度.内部宽高是指除去菜单栏.工具栏.边框等占位元素后,用于显 ...

  7. html5手势操作与多指操作封装与Canvas图片裁切实战

    当前情况,移动端的开发占比越来越高,单指的拖拽触碰等操作是常规需要.特殊的多指操作与手势操作还需另做处理,而且还涉及到兼容性问题. // 屏幕上存在两根或两根以上的手指 时触发 仅IOS存在手势事件, ...

  8. Java高级面试题解析(一)

    最近,在看一些java高级面试题,我发现我在认真研究一个面试题的时候,我自己的收获是很大的,我们在看看面试题的时候,不仅仅要看这个问题本身,还要看这个问题的衍生问题,一个问题有些时候可能是一个问题群( ...

  9. C - Visible Trees HDU - 2841 -莫比乌斯函数-容斥

    C - Visible Trees HDU - 2841 思路 :被挡住的那些点(x , y)肯定是 x 与 y不互质.能够由其他坐标的倍数表示,所以就转化成了求那些点 x,y互质 也就是在 1 - ...

  10. redis5.0.0.版设置开机自启