$Data1 = [
[ 'time'=> 1440491658, 'a'=> 1 ] ,
[ 'time'=> 1440491668, 'a'=> 3 ],
[ 'time'=> 1440491668, 'b'=> 5 ],
[ 'time'=> 1440491668, 'c'=> 7 ],
[ 'time'=> 1440491668, 'd'=> 12 ],
[ 'time'=> 1440491678, 'a'=> 11 ],
[ 'time'=> 1440491678, 'b'=> 88 ],
[ 'time'=> 1440491678, 'c'=> 13 ],
[ 'time'=> 1440491678, 'd'=> 100 ],
[ 'time'=> 1440491688, 'a'=> 11 ],
[ 'time'=> 1440491688, 'b'=> 69 ],
[ 'time'=> 1440491688, 'c'=> 12 ],
[ 'time'=> 1440491688, 'd'=> 73 ],
];
$Data2 = [
[ 'time'=> 1440491658, 'a'=> 1 ],
[ 'time'=> 1440491668, 'a'=> 3,'b'=>5,'c'=>7,'d'=>12 ],
[ 'time'=> 1440491678, 'a'=> 11,'b'=>88,'c'=>13,'d'=>100 ],
[ 'time'=> 1440491688, 'a'=> 11,'b'=>69,'c'=>12,'d'=>73 ],
];
//如何将data1转换成data2的格式??
4 回答
![?](http://img1.sycdn.imooc.com/545862370001b03502200220-100-100.jpg)
慕田峪4524236
TA贡献1875条经验 获得超5个赞
foreach ($Data1 as $data) {
foreach ($data as $key => $value) {
if($key == 'time') {
$index = $value;
}
$tmp[$index][$key] = $value;
}
}
var_dump(array_values($tmp));
![?](http://img1.sycdn.imooc.com/54586425000103f602200220-100-100.jpg)
收到一只叮咚
TA贡献1821条经验 获得超4个赞
<?php
$Data1 = [
[ 'time'=> 1440491658, 'a'=> 1 ] ,
[ 'time'=> 1440491668, 'a'=> 3 ],
[ 'time'=> 1440491668, 'b'=> 5 ],
[ 'time'=> 1440491668, 'c'=> 7 ],
[ 'time'=> 1440491668, 'd'=> 12 ],
[ 'time'=> 1440491678, 'a'=> 11 ],
[ 'time'=> 1440491678, 'b'=> 88 ],
[ 'time'=> 1440491678, 'c'=> 13 ],
[ 'time'=> 1440491678, 'd'=> 100 ],
[ 'time'=> 1440491688, 'a'=> 11 ],
[ 'time'=> 1440491688, 'b'=> 69 ],
[ 'time'=> 1440491688, 'c'=> 12 ],
[ 'time'=> 1440491688, 'd'=> 73 ],
];
$Data2 = array();
foreach ($Data1 as $value) {
foreach ($value as $index => $val) {
$Data2[$value['time']][$index] = $val;
}
}
var_dump(array_values($Data2));
![?](http://img1.sycdn.imooc.com/533e4d470001a00a02000200-100-100.jpg)
动漫人物
TA贡献1815条经验 获得超10个赞
<?php
$Data2 = [
[ 'time'=> 1440491658, 'a'=> 1 ],
[ 'time'=> 1440491668, 'a'=> 3,'b'=>5,'c'=>7,'d'=>12 ],
[ 'time'=> 1440491678, 'a'=> 11,'b'=>88,'c'=>13,'d'=>100 ],
[ 'time'=> 1440491688, 'a'=> 11,'b'=>69,'c'=>12,'d'=>73 ],
];
$Data1 = [
[ 'time'=> 1440491658, 'a'=> 1 ] ,
[ 'time'=> 1440491668, 'a'=> 3 ],
[ 'time'=> 1440491668, 'b'=> 5 ],
[ 'time'=> 1440491668, 'c'=> 7 ],
[ 'time'=> 1440491668, 'd'=> 12 ],
[ 'time'=> 1440491678, 'a'=> 11 ],
[ 'time'=> 1440491678, 'b'=> 88 ],
[ 'time'=> 1440491678, 'c'=> 13 ],
[ 'time'=> 1440491678, 'd'=> 100 ],
[ 'time'=> 1440491688, 'a'=> 11 ],
[ 'time'=> 1440491688, 'b'=> 69 ],
[ 'time'=> 1440491688, 'c'=> 12 ],
[ 'time'=> 1440491688, 'd'=> 73 ],
];
function a(&$v,$k){
$k=$v['time'].'t';
unset($v['time']);
$v=array($k=>$v);
}
function b(&$v,$k){
$v=array_merge(array("time"=>intval($k)),$v);
}
array_walk($Data1,a);
$Data1=call_user_func_array(array_merge_recursive,$Data1);
array_walk($Data1,b);
$Data1=array_values($Data1);
print_r($Data1);
?>
Array
(
[0] => Array
(
[time] => 1440491658
[a] => 1
)
[1] => Array
(
[time] => 1440491668
[a] => 3
[b] => 5
[c] => 7
[d] => 12
)
[2] => Array
(
[time] => 1440491678
[a] => 11
[b] => 88
[c] => 13
[d] => 100
)
[3] => Array
(
[time] => 1440491688
[a] => 11
[b] => 69
[c] => 12
[d] => 73
)
)
![?](http://img1.sycdn.imooc.com/54585094000184e602200220-100-100.jpg)
哔哔one
TA贡献1854条经验 获得超8个赞
$result = [];
$index = 0;
$now_time = null;
$temp = [];
foreach ($Data1 as $value){
foreach ($value as $k => $v){
//echo $k."->".$v;
if($k=='time' && $now_time==null){
//echo " {1} ".$now_time."<br>";
$now_time = $v;
$temp[$k] = $v;
}else if($k=='time' && $v==$now_time){
//echo " {2} ".$now_time."<br>";
$temp[$k] = $v;
}else if($now_time!=null && $k!='time'){
//echo " {3} ".$now_time."<br>";
$temp[$k] = $v;
}else{
//echo " {4} ".$now_time."<br>";
$now_time = $v;
$temp[$k] = $v;
$result[$index] = $temp;
$index++;
$temp = [];
}
}
}
var_dump($result);
运行后结果如下:
array(3) {
[0]=>
array(2) {
["time"]=>
int(1440491668)
["a"]=>
int(1)
}
[1]=>
array(5) {
["a"]=>
int(3)
["time"]=>
int(1440491678)
["b"]=>
int(5)
["c"]=>
int(7)
["d"]=>
int(12)
}
[2]=>
array(5) {
["a"]=>
int(11)
["time"]=>
int(1440491688)
["b"]=>
int(88)
["c"]=>
int(13)
["d"]=>
int(100)
}
}
- 4 回答
- 0 关注
- 409 浏览
添加回答
举报
0/150
提交
取消