php Yii2.0 ArrayHelper::map() 用法剖析
从多维数组或数组中构建一个映射(键-值 的形式)
通过“$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禁止同一账户同时登陆
- 下一篇: PHP最彻底的退出登录,清除session、cookie的代码