Php动态变量语法

时间:2015-04-16 09:09:46

标签: php dynamic syntax

我正在尝试使用动态变量。我知道这种语法有效:

$my_data->data1;
$my_data->data2;
...

在for()循环中成为这个:

for ($i = 0 ; $i <= nb_of_data ; $i++) {
    ${'my_data->data' . $i};
}

但我应该如何改变这些线?

for ($i = 0 ; $i <= $nb_of_iterations ; $i++) {
    $my_data[$i]->data1;
    $my_data[$i]->data2;
...

我为此做了一些努力,但它并没有起作用:

for ($i = 0 ; $i <= $nb_of_iterations ; $i++) {
    for ($j = 0 ; $j <= $nb_of_data ; $j++) {
        ${'my_data[' . $i . ']->data' . $j;
    }
}

&#39;数据的数量&#39;变化很大。

3 个答案:

答案 0 :(得分:0)

为什么不让mydata成为多维数组呢?

$mydata = array();
$data = array(1 => "data",...);
$mydata[] = $data;

你可以互相交换mydata及其中的每个数据:

foreach($mydata as $md){
  foreach($md as $data){
  //do with $data what you want
  }
}

答案 1 :(得分:0)

你在寻找这样的东西:

<?php
for ($i = 0 ; $i <= $nb_of_iterations ; $i++) {
    $my_data[$i]->data.$i;
    $my_data[$i]->data2.$i;
}

for ($i = 0 ; $i <= $nb_of_iterations ; $i++) {
        $my_data['$i']->data.'$i';
}
?>

答案 2 :(得分:0)

我终于找到了答案。这是正确的语法:

for ($i = 0 ; $i <= $nb_of_iterations ; $i++) {
    for ($j = 0 ; $j <= $nb_of_data ; $j++) {
        ${'my_data[' . $i . ']'}->data . $j;
    }
}

括号内有太多代码!