我想在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等金额按月数累计。
输入
$array = array
(
array
(
"idClient" => 101,
"Month" => "01",
"monthTotal" => "900.00",
),
array
(
"idClient" => 101,
"Month" => "02",
"monthTotal" => "100.00",
),
array
(
"idClient" => 102,
"Month" => "02",
"monthTotal" => "400.00",
),
array
(
"idClient" => 103,
"Month" => "03",
"monthTotal" => "300.00",
),
array
(
"idClient" => 103,
"Month" => "01",
"monthTotal" => "100.00",
),
array
(
"idClient" => 103,
"Month" => "02",
"monthTotal" => "200.00",
)
);
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
)
)
首先要做array_column,只获取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;