數組助手類 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