【问题标题】:Access a variable using a counter as part of the variable name使用计数器作为变量名的一部分访问变量
【发布时间】:2010-12-01 17:38:54
【问题描述】:

我试图做这样的事情:

$cat1 = array('hello', 'everyone');
$cat = array('bye', 'everyone');

for($index = 0; $index < 2; $index++) {
echo $cat$index[1];
}

当然不行。 我需要在这里更改什么?

【问题讨论】:

  • 为什么不使用嵌套数组?
  • 请回到您的问题并标记最佳答案。
  • 这是一个应该建议更好的替代解决方案而不是直接答案的示例之一。

标签: php variables


【解决方案1】:

你应该使用嵌套数组,但这可以做到。

$cat1 = array('hello', 'everyone');
$cat2 = array('bye', 'everyone');

for($i = 1; $i <= 2; $i++) {
    echo ${'cat' . $i}[1];
}

参考:http://php.net/language.variables.variable

不过这样会好很多:

$cats = array(
    array('hello', 'everyone'),
    array('bye', 'everyone')
);
foreach ($cats as $cat) {
    echo $cat[1];
}

【讨论】:

    【解决方案2】:

    这是你想要的吗?

    $cat0 = array('hello', 'everyone');
    $cat1 = array('bye', 'everyone');
    
    for($index = 0; $index < 2; $index++) {
        $varname = 'cat'.$index;
        echo $varname[0].' '.$varname[1];
    }
    

    【讨论】:

      【解决方案3】:

      如果你坚持这样做......

      echo ${'cat' . $index}[1];
      

      【讨论】:

        【解决方案4】:

        要在数组中回显元素,您需要使用

        echo $cat[$index]

        用你的例子。

        我不确定$index[1] 应该做什么?也许我误解了你的问题。

        【讨论】:

          【解决方案5】:

          你不能像那样引用 $index,它不是一个数组。

          echo $cat[$index];
          

          是你想做的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-12-14
            • 1970-01-01
            • 2014-10-31
            • 2021-06-24
            • 1970-01-01
            • 2012-01-14
            相关资源
            最近更新 更多