2016-12-01 10 views
1

私はこの種の問題があります。あなたが見ることができるように以下の私のコードは、特定のキーのみの総JSON値をカウントする

$json = json_decode($result, true); 
echo '<pre>'; 
foreach($json['campaigns'] as $campaign) 
{ 
    print_r(array('campaign_id'=>$campaign['id'], 
    'campaign_name'=>$campaign['settings']['title'], 
    'emails_sent'=>$campaign['emails_sent'])); 
} 
$sum = array('emails_sent'=>$campaign['emails_sent']); 
print_r('Total Email Sent: ' . array_sum($sum)); 
exit(); 

で、出力は以下のようなものです、

Array 
(
    [campaign_id] => bb50c7bb13 
    [campaign_name] => Campaign #1 
    [emails_sent] => 3 
) 
Array 
(
    [campaign_id] => 6b8194db96 
    [campaign_name] => Campaign #2 
    [emails_sent] => 4 
) 
Array 
(
    [campaign_id] => be9f2aed3e 
    [campaign_name] => Campaign #3 
    [emails_sent] => 0 
) 
Array 
(
    [campaign_id] => eb48c292cb 
    [campaign_name] => Campaign Scheduler #4 
    [emails_sent] => 0 
) 
Total Email Sent: 0 

、私は[「emails_sent」]の合計数をカウントします。だから私の場合、['emails_sent']の合計値は7です。なぜ出力に0が表示されますか?

+0

を反復するだけで 'array_count_values()'これを達成するために使用しながら、あなたのメールが送信され合計することができます。 –

+0

可能な複製[PHP - 特定の配列値を数える](@stackoverflow.com/questions/11646054/php-count-specific-array-values) –

+0

@FrayneKonok配列を返すarray_count_values()を試してみました。私はFabioのソリューションを使用しています。 btw、助けてくれてありがとう。新しい知識を持っています:) – JunieL

答えて

1

あなただけ

$json = json_decode($result, true); 
$sum = 0; 
echo '<pre>'; 
foreach($json['campaigns'] as $campaign) { 
    print_r(array('campaign_id'=>$campaign['id'], 
    'campaign_name'=>$campaign['settings']['title'], 
    'emails_sent'=>$campaign['emails_sent']));  
    $sum += $campaign['emails_sent']; 
} 
print_r('Total Email Sent: ' . $sum); 
//print Total Email Sent: 7 
exit(); 
+0

ありがとう、この1つの助け。 – JunieL

+0

あなたは大歓迎です。 – Fabio

関連する問題