2017-02-02 7 views
1

私は多次元配列に結果を格納していますが、いくつかの値は数値exを持つ変数で識別されます。 $ end1 = "2017-01-08";各日付には数値を格納する約10のカテゴリがあります。 合計を得るには、$ end1の下のすべての値をループする必要があります。割り当てられた配列値にアクセスするために番号を割り当てる方法はありますか?

foreach($results[$key][$end1] as $type => $amount) { 
    $total1 += $amount[$value]; 
} 

を今私は、これらのforeach文の束を持っている - 私は必要な各合計1 - と、私は1つのブロックにそれらを統合したいのですが、私はトラブルになっを持っています:

これは動作します変数名は正しい。

これは動作しません:

for($i = 1; $i <= 4; $i++){ 
     $target = "\$end$i"; 
     $targettotal = "\$total$i"; 
     foreach($results[$key][$target] as $type => $amount) { 
      $targettotal += $amount[$value]; 
     }    
    } 

は、私は、配列の値にアクセスできるように、/ $ターゲットと$ targettotalを定義する方法を修正しますか?

+0

は、これはオプションです:$ターゲット= "\ $ I $エンド";。 $ targettotal。= "\ $ total $ i";なぜドル記号\ $を逃げているのですか? – Nitin

+0

あなたは何を意味するのかはっきりしていませんが、出力を印刷するか、$ totalと$ targettotalの出力を配列に保存しますか?それにアクセスする必要がありますか? $ total [$ i] = '出力'; – Nitin

答えて

2

次のデモンストレーションを見て、$ targetVarNameの評価に別のドル記号を付加して次の行に入れてください。

<?php 

$item1 = 'aaa'; 
$item2 = 'bbb'; 
$item3 = 'ccc'; 
$item4 = 'ddd'; 
$item5 = '333'; 

for ($i = 1; $i < 6; $i++) { 

    $targetVarName = 'item' . $i; 

    echo $targetVarName .' => '. $$targetVarName . "\n"; 
} 

のようなこの意志の出力何か:

item1 => aaa 
item2 => bbb 
item3 => ccc 
item4 => ddd 
item5 => 333 
+0

ありがとう、これは私を回避していた解決策です! –

+0

乾杯!それが答えとしてそれを受け入れることを忘れないでください:) – Ali

関連する問題