PHP重写数组以对其进行总结
我得到了以下数组:PHP重写数组以对其进行总结,php,arrays,Php,Arrays,我得到了以下数组: ["positive"]=> array(3) { [0]=> array(2) { [0]=> int(1473022800000) //unix timestamp [1]=> int(100) } [1]=> array(
["positive"]=>
array(3) {
[0]=>
array(2) {
[0]=>
int(1473022800000) //unix timestamp
[1]=>
int(100)
}
[1]=>
array(2) {
[0]=>
int(1473109200000)
[1]=>
int(200)
}
[2]=>
array(2) {
[0]=>
int(1473195600000)
[1]=>
int(300)
}// etc...
["neutral"]=>
array(3) {
[0]=>
array(2) {
[0]=>
int(1473022800000) //same day as with positive
[1]=>
int(400)
}
[1]=>
array(2) {
[0]=>
int(1473109200000)//also second same day as with positive
[1]=>
int(500)
}
[2]=>
array(2) {
[0]=>
int(1473195600000)
[1]=>
int(600)
} // etc...
我需要重新包装它以获得以下内容:
["1473022800000"]=>
array(2) {
['positive']=> (int)500 //example values, should be calculated
['neutral'] => (int)200
}
["1473109200000"]=>
array(2) {
['positive']=> (int)500
['neutral'] => (int)200
}
所以我需要重写它,不是从正数或中性数,而是从日期,以便这样总结。欢迎对如何使用PHP实现这一点提出任何建议。多谢各位
UPD以下是我到目前为止所做的尝试
foreach($myarray as $key=>$val){ //getting the dates
//var_dump($key);exit;
for($i=0;$i<=30;++$i){
$dates[] = $val[$i][0];
}
}
$dates = array_unique(array_values($dates));
$dates_upd = [];
foreach($dates as $date) {
foreach($myarray as $key=>$val){
for($i=0;$i<=30;++$i){
if($val[$i][0]==$date){
$dates_upd['date'] = $date;
$dates_upd['date']['total'] = $val[$i][1];//getting errors here (cant use a scalar value etc...)
}
}
}
}
foreach($myarray as$key=>$val){//获取日期
//变量转储($key);退出;
对于($i=0;$i$val){
对于($i=0;$i),可以通过两个嵌套的foreach循环来实现这一点:
$out=[];
foreach($myarray as $key=>$subarray){
foreach($subarray as $item){
$date = $item[0];
$value = $item[1];
$out[$date][$key]=$value;
}
}
那么,是什么阻止您对
循环使用?我无法正确汇总所有值。首先,我获取了日期数组,然后我尝试在foreach循环中获取与该日期相关的值,但它给出了错误的结果。