2017-01-04 16 views
-4

私はruntasticデータを視覚化する簡単なスクリプトを作成しようとしていますが、少し問題があります。 次のスクリプトを実行します。このスクリプトは、最新のアクティビティのみを表示します。複数の結果の合計

$myRuntasticActivities = $runtastic->getActivities(null, null, 2017); 
$distanceKM = $myRuntasticActivities[0]->distance/1000; 
echo "In 2017 I ran $distanceKM KM"; 

結果出力:2017年に私は6,8KMを実行しました。

[0]を[1]に変更すると、2番目に最近のアクティビティが表示されます。 どのようにすべての結果を追加できますか?私はruntasticスクリプトが最新の419の結果を表示することに限定されていると信じています。 0 - > 419を追加する方法はありますか?

array_sumを試しましたが、動作させることができません。

+2

'for'または' foreach'ループです。 – ceejayoz

+0

'array_sum()'には数値の配列が必要です。オブジェクトの配列があります。あなたは 'array_map()'を使ってそれからすべての距離を抽出し、それらを 'array_sum()'で合計することができます。 – Barmar

答えて

0

array_reduceを使用できます。

$sum = array_reduce($myRuntasticActivities, function($carry, $item){ 
    return $carry + $item->distance; 
}, 0)/1000; 

foreachを使用できます。

$sum = 0; 
foreach ($myRuntasticActivities as $act) { 
    $sum += $act->distance/1000; 
} 

単純なforを使用できます。

$sum = 0; 
for ($i = 0; $i < count($myRuntasticActivities); $i++) { 
    $sum += $myRuntasticActivities[$i]->distance/1000; 
} 
関連する問題