【问题标题】:Recomposing an array in PHP在 PHP 中重新组合数组
【发布时间】:2022-01-14 19:24:07
【问题描述】:

我有这个数组需要转换或重组以形成一个新数组。

原始数组如下所示

Array
(
    [0] => Array
        (
            [amount] => 1439.53
            [c_year] => 2021
            [c_month] => 9
            [short_month] => Sep
        )

    [1] => Array
        (
            [amount] => 1448.13
            [c_year] => 2021
            [c_month] => 10
            [short_month] => Oct
        )

)

注意:月份 = [c_month].'-'.[c_year]

我需要它看起来像下面的数组

Array
(
    [0] => Array
        (
          [month] => Sept-9
          [amount] => 1439.53
         )
    [1] => Array
        (
          [month] => Oct-9
          [amount] => 1448.13
        )
)

我尝试了几个循环,但似乎无法转换或重构它。

我的努力如下。

```
foreach ($resultsArray as $key=>$value) {
    $monthsFees = array('month'=>$value['c_year'].'-'.$value['c_month']);array('amount'=>$value['amount']);

    }
```

结果:

Array
(
    [month] => 2021-10
)


```
foreach ($resultsArray as $key=>$value) {
    array_push($monthsFees,'amount',$value['amount'],'month' ,$value['short_month'].'-'.$value['c_year']);
    }
```

结果:

Array
(
    [0] => amount
    [1] => 1439.53
    [2] => month
    [3] => Sep-2021
    [4] => amount
    [5] => 1448.13
    [6] => month
    [7] => Oct-2021
)


```
$feesLast6MonthsArray['month']= $value['c_year'].'-'.$value['c_month'];
      $feesLast6MonthsArray['amount']=$value['amount'];
}
```

结果:

Array
(
    [month] => 2021-10
    [amount] => 1448.13
)

【问题讨论】:

  • 9Oct-9 中是从哪里来的?这些年来发生了什么?
  • 另外,使用var_dump() / print_r() 输出非常困难。您能否将数组提供为实际(缩进很好)的 PHP 数据结构
  • 您想要的输出的每个示例似乎都不同。能否请您花点时间澄清一下您的要求
  • 我已经添加了我可以添加的内容。请在标记之前留出时间进行更正:-(

标签: php arrays


【解决方案1】:

您可以使用array_map() 将数组转换为您想要的格式

$monthsFees = array_map(function($fee) {
    return [
        "month"  => sprintf("%s-%s",
             $fee["c_month"], 
             $fee["c_year"]
        ), // [c_month].'-'.[c_year]
        "amount" => $fee["amount"]
    ];
}, $resultsArray);

演示~https://3v4l.org/0trIY

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2018-05-22
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多