0
我有這樣的一個陣列之下,但大得多:迭代多維PHP數組,平均值,其中密鑰是相同的
Array(
[0] => Array(
[carrier] => Test Carrier
[value] => 5
),
[1] => Array(
[carrier] => New Carrier
[value] => 18
),
[2] => Array(
[carrier] = Test Carrier
[value] => 8
)
)
在現實中有大約306陣列與載體的鍵 - 值對,並值。我想要做的是迭代上面的這個數組(它有多個數組,載波=>測試載波),並在載波名稱相同的情況下添加相應的值,然後除以2得到平均值。
因此,對於上面的例子中,其結果在僞代碼將是:
代碼注意到載波信號是與另一個相同(即測試載體)
添加8 + 5 13但是記得它有兩個數組,
carrier = Test Carrier
,所以它除以2並設置值等於那個。如果它發生第三次,它將增加併除以2.目標是獲得平均值,如果有15個記錄具有相同的運營商名稱並加上所有值併除以15.返回一個數組數據如上,但沒有重複的運營商名稱,其值等於所有具有相同名稱的數組的平均值。
這是我迄今但它是不完整的:
$cars = array(
'carriers' => array(
)
);
$avgs = array();
foreach($arr as $new) {
if(in_array($new['carrier'], $cars['carriers'])) {
$avgs['value'] = $avgs['value'] + $new['value']/$cars['count'];
} else {
$avgs[] = $new;
$cars['carriers'] = array(
'carrier' => $new['carrier'],
'count' => 0
);
}
}
如何才能做到這一點?
輝煌....就這樣。 – asgwar12 2014-09-06 18:34:48