修改php多维数组
我有一个如下的数组。 我想通过那个数组得到下面的数组修改php多维数组,php,arrays,Php,Arrays,我有一个如下的数组。 我想通过那个数组得到下面的数组 Array ( [0] => Array ( [user_id] => 1 [report_id] => 8 [data] => Array ( [0] => Array ( [date_stamp] => 03/04/2017 ) [1] => Array ( [date_stamp] => 04/04/2017 ) ) [1] => Array ( [user_i
Array (
[0] => Array (
[user_id] => 1
[report_id] => 8
[data] => Array (
[0] => Array ( [date_stamp] => 03/04/2017 )
[1] => Array ( [date_stamp] => 04/04/2017 )
)
[1] => Array (
[user_id] => 1
[report_id] => 5
[data] => Array (
[0] => Array ( [date_stamp] => 09/04/2017 )
[1] => Array ( [date_stamp] => 06/04/2017 )
))
如何通过更改第一个阵列来获得第二个阵列。帮帮我。根据我的理解,这是我的结论 使用相同的用户id组合日期戳 试试这个
Array (
[0] => Array (
[user_id] => 1
[report_id] => 8
[data] => Array (
[0] => Array ( [date_stamp] => 03/04/2017 )
[1] => Array ( [date_stamp] => 04/04/2017 )
[2] => Array ( [date_stamp] => 09/04/2017 )
[3] => Array ( [date_stamp] => 06/04/2017 )
)
请参见此处希望您自己尝试编写代码。如果您有问题,请发布您尝试过的内容,并清楚解释哪些内容不起作用,然后提供。读一个好问题。请确保阅读。可能的重复项-仅使用
$foo.data
作为参数。在第一个数组中,两个数组对象的报告id
不同。。。如果您真的想将两个数组合并为一个数组,那么它被错误地引用到report\u id
@Nidhi,这没关系。我不需要那个报告id
<?php
$a = array(array("user_id"=>1,"report_id"=>8,"data"=>array(array("date_stamp"=>"03/04/2017"),array("date_stamp"=>"04/04/2017"))),
array("user_id"=>1,"report_id"=>5,"data"=>array(array("date_stamp"=>"09/04/2017"),array("date_stamp"=>"06/04/2017"))),
array("user_id"=>2,"report_id"=>5,"data"=>array(array("date_stamp"=>"19/04/2017"),array("date_stamp"=>"16/04/2017"))),
array("user_id"=>2,"report_id"=>5,"data"=>array(array("date_stamp"=>"29/04/2017"),array("date_stamp"=>"26/04/2017"))));
$user_id = 0;
$arr = array();
foreach($a as $b){
$temp_array = array();
if($user_id == $b['user_id']){
foreach($b['data'] as $data){
array_push($arr[$user_id]['data'],$data);
}
}else{
$temp_array['data'] = $b['data'];
$temp_array['user_id'] = $b['user_id'];
$user_id = $b['user_id'];
$arr[$user_id] = $temp_array;
}
}
echo '<pre>';
print_r($arr);
?>