php 按条件将数组合并

有个需求:按时间将数组合并

原数组:
file

<?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);

执行结果:
file

发布了145 篇原创文章 · 获赞 24 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/xiaobinqt/article/details/102573052