在 PHP 中重命名数组键名的实现(基于函数 array_map)
1、现有的数组结构如下,其键名为小写字母加下划线的形式。2、期望将数组键名调整为驼峰的形式,传统的方式就是基于 foreach 遍历,生成一个新的键名为驼峰形式的数组。这一次计划基于函数 array_map 实现。为数组的每个元素应用回调函数。3、转换后的数组结构如下,其键名为驼峰形式。如图1
[
[
[id] => 97
[theme_id] => vogue
[version] =>
[asset_key] => assets\iconfont\iconfont.css
[mime_type] => text/plain
[category] => unknown
[schema] =>
[created_at] => 2022-01-20 10:05:24
[updated_at] => 2022-01-20 10:05:24
]
[
[id] => 98
[theme_id] => vogue
[version] =>
[asset_key] => assets\iconfont\iconfont.js
[mime_type] => text/plain
[category] => unknown
[schema] =>
[created_at] => 2022-01-20 10:05:24
[updated_at] => 2022-01-20 10:05:24
]
]
public function __invoke($rootValue, array $args, GraphQLContext $context, ResolveInfo $resolveInfo)
{
$themeId = $rootValue['themeAssets']['theme_id'];
$themeAssets = ThemeAsset::where('theme_id', $themeId)->get()->toArray();
$func = function($themeAsset) {
return [
'id' => $themeAsset['id'],
'themeId' => $themeAsset['theme_id'],
'version' => $themeAsset['version'],
'content' => $themeAsset['content'],
'key' => str_replace("\\", "/", $themeAsset['asset_key']),
'mimeType' => $themeAsset['mime_type'],
'category' => $themeAsset['category'],
'schema' => $themeAsset['schema'],
'createdAt' => $themeAsset['created_at'],
'updatedAt' => $themeAsset['updated_at'],
];
};
$themeAssets = array_map($func, $themeAssets);
return $themeAssets;
}
[
[
[id] => 97
[themeId] => vogue
[version] =>
[key] => assets\iconfont\iconfont.css
[mimeType] => text/plain
[category] => unknown
[schema] =>
[createdAt] => 2022-01-20 10:05:24
[updatedAt] => 2022-01-20 10:05:24
]
[
[id] => 98
[themeId] => vogue
[version] =>
[key] => assets\iconfont\iconfont.js
[mimeType] => text/plain
[category] => unknown
[schema] =>
[createdAt] => 2022-01-20 10:05:24
[updatedAt] => 2022-01-20 10:05:24
]
]
