我有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()
。
有没有办法实现这个目标?
答案 0 :(得分: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>";
}
}
答案 1 :(得分:0)
当然,但是您可以从帖子的语法高亮显示中清楚地看到,您在“optgroup”行的末尾使用了'
而不是"
。
此外,您可以使用嵌套数组:
$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>";
}