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