[英]How to group or sum with the same id in object array
我有這個對象數組。 我使用print_r進行打印。 我想將所有具有相同ID的X,Y和總計相加,或按ID將它們分組,然后將X,Y和總計相加。
array (size=3)
0 =>
object(stdClass)[13]
public 'id' => string '24' (length=2)
public 'x' => float 2
public 'y' => float 5
public 'total' => int 7
1 =>
object(stdClass)[17]
public 'id' => string '25' (length=2)
public 'x' => int 0
public 'y' => float 2
public 'total' => int 2
2 =>
object(stdClass)[19]
public 'id' => string '25' (length=2)
public 'x' => float 13
public 'y' => int 0
public 'total' => int 13
這是我的嘗試,但是沒用。
$sumArray = array();
foreach ($r as $k=>$subArray) {
foreach ($subArray as $id => $value) {
$sumArray = $subArray->x+=$value;
}
}
先感謝您。
假設您擁有的數據稱為$inputData
此代碼應創建一個新數組,其中包含按ID分組和總計的項。
更新資料
添加了array_values()以重置鍵。
<?php
$arrayResult = array();
foreach($inputData as $someInput){
if(!isset($arrayResult[$someInput->id])){
$current = new stdClass();
$current->id = $someInput->id;
$current->x = $someInput->x;
$current->y = $someInput->y;
$current->total = $someInput->total;
$arrayResult[$someInput->id] = $current;
}else{
$current = $arrayResult[$someInput->id];
$current->x += $someInput->x;
$current->y += $someInput->y;
$current->total += $someInput->total;
$arrayResult[$someInput->id] = $current;
}
}
$arrayResult = array_values($arrayResult);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.