2017-05-30 67 views
-1
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 ) 
)) 

我有一个像下面这样的数组。 我想通过该数组获取数组。修改一个php multidimentional数组

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

如何通过更改第一个数组来获得第二个数组。帮我。

+5

预计您尝试**写自己编码**。在[**做更多的研究**之后](https://meta.stackoverflow.com/q/261592/1011527)如果你有问题**发布你已经尝试了**的**明确的解释不工作**并提供[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。阅读[如何问](http://stackoverflow.com/help/how-to-ask)一个很好的问题。请务必[参观](http://stackoverflow.com/tour)并阅读[this](https://meta.stackoverflow.com/q/347937/1011527)。 –

+0

[PHP追加一个数组到另一个(而不是数组\\ push或+)]的可能重复(https://stackoverflow.com/questions/4268871/php-append-one-array-to-another-not-array-push -or) - 只需使用'$ foo.data'作为参数。 –

+1

在你的第一个数组中,'report_id'对于两个数组对象都是不同的......如果你真的想把两个数组合并成一个,那么它被错误地引用到'report_id'。 – Nidhi

回答

0

这是从我的理解

我的结论结合date_stamp具有相同的user_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); 
?> 

demo这里