Ben şu girişi:toplamı
$data = array(
0 => array(
'date' => '2014-01-01',
'sales' => 1,
'price' => array(
'usd' => 1,
'eur' => 100
)
),
1 => array(
'date' => '2014-01-05',
'sales' => 1,
'price' => array(
'usd' => 1,
'eur' => 100,
'gbp' => 500
)
),
2 => array(
'date' => '2016-03-27',
'sales' => 5,
'age' => 50
),
3 => array(
'date' => '2016-03-28',
'sales' => 10
)
);
Ve şu çıktıyı bekliyoruz: Şimdiye kadar
$final = array(
'March 2016' => array(
'sales' => 15
),
'January 2014' => array(
'sales' => 2,
'price' => array(
'usd' => 2,
'eur' => 200,
'gbp' => 500
)
)
);
yaptık?
$monthlyData = array();
foreach ($dailyData as $day)
{
$key = date('M y', strtotime($day['date']));
if (!isset($monthlyData[$key]))
{
$monthlyData[$key] = $day;
continue;
}
foreach ($day as $metric => $value)
{
if(!empty($value))
{
$monthlyData[$key][$metric] += $value;
}
}
}
Sanırım doğru sonucu elde etmek için (özyinelemeli çağrıları ile) iyi ol' foreach
kullanabileceğinizi biliyor, ama biraz daha düzenli bir çözüm arıyorum.
Veriler bir MySQL tablosundan mı geliyor? Eğer öyleyse, sorguda kendisini toplamak daha zarif olabilir. – rybo111
Hayır, API'dan yanıt. :-( – vitozev
'' fiyat '=> dizi ('ilk öğeniz a' fiyat' veya 'fiyatlar'' ' – Federkun