修改一个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 )
)
[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 )
)
如何通过更改第一个数组来获得第二个数组。帮我。
答
这是从我的理解
我的结论结合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这里
预计您尝试**写自己编码**。在[**做更多的研究**之后](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)。 –
[PHP追加一个数组到另一个(而不是数组\\ push或+)]的可能重复(https://stackoverflow.com/questions/4268871/php-append-one-array-to-another-not-array-push -or) - 只需使用'$ foo.data'作为参数。 –
在你的第一个数组中,'report_id'对于两个数组对象都是不同的......如果你真的想把两个数组合并成一个,那么它被错误地引用到'report_id'。 – Nidhi