0
$size_of_groups = "4";
// for the purpose of the question, assume $seeded_teams size is currently 32, it's array that returns data from a function i have created, 
//however the size can change
// depending on user input

// creates dynamically named arrays (i realize this is a poor way of doing 
//things, but, for my purposes it is fine
$ft = "true"; 
for ($i = 1; $i < sizeof($seeded_teams) / $size_of_groups + 1; $i++) {
    if ($ft == "true") {
        ${"group{$i}"} = array($seeded_teams[0], $seeded_teams[sizeof($seeded_teams) / 2 - 1], 
        $seeded_teams[sizeof($seeded_teams) / 2], $seeded_teams[sizeof($seeded_teams) - 1]);
        $ft = "false";
    } else {
        ${"group{$i}"} = array($seeded_teams[-1 + $i], $seeded_teams[sizeof($seeded_teams) / 2 - $i], 
        $seeded_teams[sizeof($seeded_teams) / 2 - 1 + $i], $seeded_teams[sizeof($seeded_teams) - $i]);
    }
}

我正在我的脚本中创建具有动态名称的数组。以这种方式创建的所有数组都附加了一个数字。
例如:$group1、$group2、$group3、$group4、$group5、$group6、$group7、$group8

如果我知道(并且我的脚本理解)确切有多少个数组(因此,将知道所有的附件),我想知道是否有任何方法可以执行一个可以理解所有 8 个的语句数组,而不必调用 8 个单独的循环。

我想只重写这部分代码以使用多维数组可能会好得多,但是我在很久以前使用这些信息编写了一些其他函数,当时我的经验要少得多,并且还没有意识到该项目。请注意,此项目仅用于个人目的。

举一个更好的例子,是否可以做这样的事情?

for($i=0;$i < $number_of_groups + 1; i++) {
    foreach ($"{group{$i}"} as $value) {
        echo $value."<br>";
    }
}
4

1 回答 1

3

您可以通过以下方式完成此操作variable variables

for($i = 0; $i < $number_of_groups + 1; i++) {
    $var = 'group' . $i;
    foreach ($$var as $value) {
        // ...
    }
}
于 2012-06-04T20:06:10.190 回答