您的位置:首页 > 编程语言 > PHP开发

php Yii2.0 ArrayHelper::map() 用法剖析

2016-12-27 10:15 591 查看
从多维数组或数组中构建一个映射(键-值 的形式)

通过“
$from
”和“
$to
”参数指定对应的键值或属性名称来设置的映射关系。

当然也可以根据分组字段“
$group
”来进一步分组的映射。

举个例子:

$array = [
['id' => '123', 'name' => 'aaa', 'class' => 'x'],
['id' => '124', 'name' => 'bbb', 'class' => 'x'],
['id' => '345', 'name' => 'ccc', 'class' => 'y'],
];


上面的数组执行以下方法

$result = ArrayHelper::map($array, 'id', 'name');


得到的结果是

[
'123' => 'aaa',
'124' => 'bbb',
'345' => 'ccc',
]


还可以添加第四个参数

$result = ArrayHelper::map($array, 'id', 'name', 'class');


得到的结果是

[
'x' => [
'123' => 'aaa',
'124' => 'bbb',
],
'y' => [
'345' => 'ccc',
],
]


下面是map方法的详细代码

/**
* @paramarray $array
* @param string|Closure $from
* @param string|Closure $to
* @param string|Closure $group
* @return array
*/
public static function map($array, $from, $to, $group = null)
{
$result = [];
foreach ($array as $element) {
$key = static:: getValue($element, $from);
$value = static:: getValue($element, $to);
if ($group !== null) {
$result[ static:: getValue($element, $group)][$key] = $value;
} else {
$result[$key] = $value;
}
}
return $result;
}


文章转载自 http://u.cxyblog.com/10/article-aid-329.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php yii yii2 数组 array