【问题标题】:How can I target a specific variable by name using a for loop?如何使用 for 循环按名称定位特定变量?
【发布时间】:2014-03-30 20:04:24
【问题描述】:

是否可以使用 for 循环,其中 $i 是变量名的一部分?我试图让这个 for 循环列出水果:

$item1name = "apple";
$item2name = "orange";
$item3name = "banana";

for($i=0, $i<2, $i++) {
  echo = "<li>$item?????</li>";
}

// should result in:
// <li>apple</li><li>orange</li><li>banana</li>

我意识到我可以将水果放入 $itemname 数组 并轻松地回显 $itemname[$i],但这不是我要问的。当 $i 是变量名的一部分时,是否可以这样做?

【问题讨论】:

  • 只使用数组代替。
  • 当然,我已经注意到我可以做到这一点,但这不是我要问的。谢谢@Amal。
  • 谢谢@BlackPearl。您愿意详细说明吗?

标签: php for-loop


【解决方案1】:

可以使用variable variables:

for($i=1; $i<=3; $i++) {
    echo "<li>" . ${'item'.$i.'name'} . "</li>";
}

请注意,您的原始代码在语法上不正确。我已经修好了。另请注意 $i 值如何更改。您的变量数是从 1 到 3,而不是从 0 到 1。

但我不明白你为什么想要这个。只需使用数组即可。

Demo

【讨论】:

  • 谢谢阿迈勒。这就是我一直在寻找的。我正在使用类似于 $itemXname 的现有数据列。就我而言,它们很简单,可以加载到像“array($item1name,$item2name,$item3name)”这样的数组中,但是在无法以编程方式完成或列名称中的数字的情况下,您的回答很有帮助不会对应于它们的索引值。再次感谢!
  • @JoshRencher:没问题。很高兴能帮上忙!
猜你喜欢
  • 2014-04-15
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多