php - 转置具有预定义键的 PHP 多维数组
问题描述
我有一个带有 3 个键(“长度”、“宽度”和“高度”)的多维数组。每个键都与一个值数组相关联:
$data = [
"length" => ["12", "44"],
"width" => ["22", "45"],
"height" => ["22", "34"]
];
如何将每个键的列转换为 3 列的行,如下所示:
$rows = [
["length" => "12", "width" => "22", "height" => "22"],
["length" => "44", "width" => "45", "height" => "34"]
];
解决方案
以下函数将完成这项工作:
function transpose($data)
{
$result = [];
$keys = array_keys($data);
for ($row = 0, $rows = count(reset($data)); $row < $rows; $row++) {
foreach ($keys as $key) {
$result[$row][$key] = $data[$key][$row];
}
}
return $result;
}
请注意,该函数是一个通用解决方案,它不依赖于键的名称,也不依赖于每个键的条目数。
推荐阅读
- flask - flask env config.py 找不到数据库:无法获取类“flask_sqlalcwmy.SQLAlchemy”的代表
- javascript - 为什么Javascript导入函数返回未定义
- javascript - 如何使用 React 操作 SVG 路径 onclick?
- javascript - 使用 jQuery 替换标签内的文本
- javascript - 多个插入 node.js
- database - 在 postgresql 中使用 except 选择
- python - 如何在 Django 中使用上下文处理器创建表单?
- variables - 如何制作反垃圾邮件功能discord.py?
- python - 如何找到这个转折点
- ruby-on-rails - Rails 每当 gem 不使用 Ubuntu 和 Docker Compose 执行重复的 crontab 任务时