将项目推送到其变量名称在php中是动态的数组

时间:2012-11-05 13:59:03

标签: php arrays variables dynamic associative-array

我有以下3个变量:

        private $a_total;
        private $b_total;
        private $c_total;

现在,当字段填写了一些总计数据时,这些字段的名称是“a”,“b”和“c”。我想将它动态存储到以下变量:

      $type = $_POST['totaltype']; //either a, b or c
      $to_save = "{$type}_total";
      $this->$to_save['total'] = some number;

如果我尝试

 print_r($this->$to_save); 

它给出了空数组。如果我试着:

 print_r($this->$to_save['total']); 

它给出正确的数字。

任何人都可以帮忙吗?

注意:我想动态使用,因为这些数据将在一个大循环中,因此我不想重复使用$a_total$b_total$c_total,因为我将拥有更多abc变量。

2 个答案:

答案 0 :(得分:1)

您可以将变量名称包装在类中的花括号中:

$this->{$type . "_total"} = 5;

当像数组一样访问它时同样有效:

$this->{$type . "_total"}['total'] = 5;

您还可以将变量的全名保存在字符串中,例如$to_save,并以相同的方式访问它:

$to_string = $type . '_total';
$this->{$to_string}['total'] = 5;
print_r($this->{$to_string});

答案 1 :(得分:0)

$a_total更改为$total['a'],将$b_total更改为$total['b'],将$c_total更改为$total['c']

然后您可以动态访问这些值。