首页 > 解决方案 > 如何在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”应按年份排序。

标签: php

解决方案


对这里的问题做出一些假设,并对所提供数据的结构表示怀疑,但是......

假设这是您想要的结果,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>";

推荐阅读