Php 动态变量语法

Php Dynamic Variables 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;
    }
}

'data' 的数量变化很大。

为什么不把 mydata 做成多维数组?

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

您可以对 mydata 和其中的每个数据进行交互:

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

您是否正在寻找这样的东西:

<?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';
}
?>

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

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

括号之间的代码太多了!