0

我有一个array:$categories = array("item1", "item2", "item3"); 我也有三个数组: $item1Array = array("hi", "items");, $item2Array = array("hi", "items");,$item3Array = array("hi", "items"); 我声明了一个这样的 foreach :

foreach ($categories as &$value) {
    echo "<optgroup label='" . $value . "'>';
    $nextArray = $value . "Array";
    foreach($nextArray as &$nextValue) {
        echo "<option value='" . $nextValue . "'>" . $nextValue . "</option>";
    }
}

但它得到一个错误Warning: invalid argument supplied for foreach()。有没有办法可以做到这一点?

4

2 回答 2

1

是的,你可以,通过${$nextArray}。但请注意命名变量不是好习惯,您可以改用关联数组。

请注意,在这种情况下您不需要使用参考。

$categories = array("item1", "item2", "item3");
$item1Array = array("hi", "items");
$item2Array = array("hi", "items");
$item3Array = array("hi", "items");

foreach ($categories as $value) {
    echo "<optgroup label='" . $value . "'>";
    $nextArray = $value . "Array";
    foreach(${$nextArray} as $nextValue) {
        echo "<option value='" . $nextValue . "'>" . $nextValue . "</option>";
    }
}
于 2012-12-02T02:40:55.260 回答
0

当然,但正如您从帖子的语法突出显示中清楚地看到的那样,您在“optgroup”行的末尾使用了 a'而不是 a 。"

此外,您可以只使用嵌套数组:

$categories = Array(
  "item1"=>Array("hi","items"),
  "item2"=>Array("hi","items"),
  "item3"=>Array("hi","items"),
);
foreach($categories as $key=>$array) {
  echo "<optgroup label='".$key."'>";
  foreach($array as $value) {
    echo "<option>".$value."</option>";
  }
  echo "</optgroup>";
}
于 2012-12-02T02:41:11.220 回答