Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
修改php多维数组_Php_Arrays - Fatal编程技术网

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