Php 基于当前数组的任意键创建新数组

Php 基于当前数组的任意键创建新数组,php,codeigniter,Php,Codeigniter,我想基于idClient的键创建数组,现在我的数组如下所示: Array ( [0] => Array ( [idClient] => 101 [Month] => 01 [monthTotal] => 900.00 ) [1] => Array ( [idClient] => 101

我想基于idClient的键创建数组,现在我的数组如下所示:

Array
(
    [0] => Array
        (
            [idClient] => 101
            [Month] => 01
            [monthTotal] => 900.00
        )

    [1] => Array
        (
            [idClient] => 101
            [Month] => 02
            [monthTotal] => 100.00
        )

    [2] => Array
        (
            [idClient] => 102
            [Month] => 02
            [monthTotal] => 400.00
        )

    [3] => Array
        (
            [idClient] => 103
            [Month] => 03
            [monthTotal] => 300.00
        )

    [4] => Array
        (
            [idClient] => 103
            [Month] => 01
            [monthTotal] => 100.00
        )

    [5] => Array
        (
            [idClient] => 103
            [Month] => 02
            [monthTotal] => 200.00
        )

)
我想用这种方式创建一个新数组。请问,有人能帮我吗

Array
(
    [101] => Array
        (
          [01] => 900.00
          [02] => 100.00
        )

    [102] => Array
        (
            [02] => 400.00
        )

    [103] => Array
        (
          [01] => 100.00
          [02] => 200.00
          [03] => 300.00
        )
)
这里:[101]、[102]和[103]是阵列的idClient, [01]、[02]、[03]是月份号


和900、100、400等,根据月数计算月总数。

首先执行数组\u列,以仅获取idClient

$ClientIds = array_unique(array_column($records, 'idClient'));//$records will be your array
然后使用这个循环

foreach($ClientIds as $id){
    foreach($records as $row){
           if($id = $row['idClient']){
              $data[$id][$row['Month']] = $row['monthTotal'];
           }
    }
}
echo var_dump($data);die;
输入

PHP脚本

$narray = array();
if ($array) {
foreach($array as $key => $value){
    if(!array_key_exists($value['idClient'],$narray)){
        $narray[$value['idClient']] = array();
    }
    $narray[$value['idClient']][$value['Month']] = $value['monthTotal'];
}
}
print_r($narray);
输出

Array
(
[101] => Array
    (
        [01] => 900.00
        [02] => 100.00
    )

[102] => Array
    (
        [02] => 400.00
    )

[103] => Array
    (
        [03] => 300.00
        [01] => 100.00
        [02] => 200.00
    )

)

您能否以json格式提供数组以获得预期结果?
Array
(
[101] => Array
    (
        [01] => 900.00
        [02] => 100.00
    )

[102] => Array
    (
        [02] => 400.00
    )

[103] => Array
    (
        [03] => 300.00
        [01] => 100.00
        [02] => 200.00
    )

)