猿问

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 = [
     [ '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的格式??
扬帆大鱼
浏览 410回答 4
4回答

慕田峪4524236

foreach ($Data1 as $data) { foreach ($data as $key => $value) { if($key == 'time') { $index = $value; } $tmp[$index][$key] = $value; } } var_dump(array_values($tmp));

收到一只叮咚

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

动漫人物

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

哔哔one

$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) } }
随时随地看视频慕课网APP
我要回答