有个需求:按时间将数组合并
原数组:
<?php
/**
* Created by PhpStorm.
* User: binWei
*/
$str = <<<FFF
[{"p_date":"2019-10-05","complex0":804242632},{"p_date":"2019-10-06","complex0":823298584},{"p_date":"2019-10-07","complex0":790692152}, {"p_date":"2019-10-08","complex0":783287616},{"p_date":"2019-10-09","complex0":792646336},{"p_date":"2019-10-10","complex0":780325912}, {"p_date":"2019-10-11","complex0":794923184},{"p_date":"2019-10-05","complex1":57102968},{"p_date":"2019-10-06","complex1":57881296},{"p_date":"2019-10-07","complex1":54998320},{"p_date":"2019-10-08","complex1":55255872},{"p_date":"2019-10-09","complex1":54035844},{"p_date":"2019-10-10","complex1":55368612},{"p_date":"2019-10-11","complex1":56167788}]
FFF;
$strArr = json_decode($str, true);
//var_dump($strArr);die;
$dims = array(
"p_date"
);
$result = array();
foreach ($strArr as $source) {
$keyArr = array();
$count = 0;
foreach ($dims as $dim) {
$dimValue = $source[$dim];
//为空的情况弄个站位符
if (is_null($dimValue)) {
$dimValue = "EP" . $count;
}
$keyArr[] = $dimValue;
$count++;
}
$keyStr = implode("_", $keyArr);
foreach ($source as $key => $value) {
$result[$keyStr][$key] = $value;
}
}
var_dump($result);
执行结果: