php - 如何在php中转换这个数组?
问题描述
$array1 = [
2019 => [
Biomasse => [summe => 32113]
Solar => [summe => 21321]
]
2020 => [
Biomasse => [summe => 3123113]
Solar => [summe => 21421321]
]
2021 => [
Biomasse => [summe => 2122]
Solar => [summe => 1233]
]
]
我想按“生物质”和“太阳能”对数组进行排序。例如:
$array2 = [
Biomasse => [summe => 32113,3123113, 2122]
Solar => [summe => 21321, 21421321, 1233]
]
“summe”应按年份排序。
解决方案
对这里的问题做出一些假设,并对所提供数据的结构表示怀疑,但是......
假设这是您想要的结果,Biomasse 和 Solar 按年份排序。
$array2 = [
Biomasse => [ valueOf2019, valueOf2020 , valueOf2021 ]
Solar => [ valueOf2019, valueOf2020 , valueOf2021 ]
]
然后你应该先做一个ksort,然后是一个foreach,然后你可以简单地将值添加到一个新数组中。
例子;
$array1 = Array(
"2019" => Array(
"Biomasse" => Array( 32113 ),
"Solar" => Array( 21321 )
),
"2020" => Array(
"Biomasse" => Array( 3123113 ),
"Solar" => Array( 21421321 )
),
"2021" => Array(
"Biomasse" => Array( 2122 ),
"Solar" => Array( 1233 )
)
);
ksort( $array1 );
$array2 = Array(
"Biomasse" => Array(),
"Solar" => Array()
);
foreach($array1 as $year ){
$array2["Biomasse"][] = $year["Biomasse"][0];
$array2["Solar"][] = $year["Solar"][0];
}
echo "<pre>";
var_dump( $array2 );
echo "</pre>";
推荐阅读
- sql - SQL Server Switch 基于先前值的分组
- php - 通过单击电子邮件中发送的按钮组件来更新用户的 sql 字段的代码
- git - 在本地 GIT 上,当本地 master 领先或与 origin/master 相比位于单独的分支时,如何将 master 与 origin/master 合并?
- c - 连续使用glMatrixMode()?
- nginx - 如何使用入口 nginx 负载平衡套接字
- elasticsearch - 无法恢复连接 [Kibana]
- google-drive-api - 谷歌驱动器应用程序脚本,在合并文档时将图像复制到每个文档的最后一页
- sql - SQL Server - 当 sql server 和应用程序在同一台服务器上时,关闭外部端口并作为 localhost 工作
- oracle - Oracle:使用“立即执行”和行数删除行
- sql - 使用 CASE 为 SQLite 中的 COUNT 语句设置条件