如何指定一个数字来访问指定的数组值?

时间:2017-02-02 12:47:25

标签: php arrays variables

我将结果存储在多维数组中,某些值由具有数值ex的变量标识。 $ end1 =" 2017-01-08&#34 ;;每个日期下面有大约10个存储数值的类别。 我需要循环通过$ end1下的所有值来获得总数。

这有效:

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

但现在我有一堆这些foreach语句 - 我需要的每一个语句 - 并且我想将它们合并到一个块中,但我无法正确获取变量名称。

这不起作用:

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

如何修复/定义$ target和$ targettotal以便可以访问数组值?

1 个答案:

答案 0 :(得分: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