【问题标题】:Output array element after generating the array variable name out of other variables in phpphp中其他变量生成数组变量名后输出数组元素
【发布时间】:2012-09-06 21:14:25
【问题描述】:

我有一段时间不做 php,现在我决定编写一个小脚本,但我遇到了以前遇到过的问题并设法自己解决,但现在我无法到。

假设我有'n'个这样的数组......

$numbers1=array('32','16','29','41','36');
$numbers2=array('13','50','47','7','39');
$numbers3=array('3','4','29','35','31');

然后我想使用“for循环”来生成数组名称并输出数组的某些元素和/或整个数组本身,就像这样......

for($count1=1;$count1<=3;$count1++)
{
    $num1='numbers'.$count1;
    print_r($$num1); //this outputs what's inside all arrays as expected
    echo $$num1[0];
}

“echo $num1[0]”是问题所在,它的存在只是为了说明我想从所有数组的元素 0 中“回显”内容,从而获得以下输出“32133”。

很久以前,当我开始使用 php 时,我在 stackoverflow 上提出了一个类似的问题,但是关于该问题的回答不适用于这种情况,而且我在谷歌搜索和在这里搜索中失去了 2 个小时在stackoverflow上。

【问题讨论】:

    标签: php arrays variables echo


    【解决方案1】:

    您需要使用{},以便 PHP 知道如何解释您的变量。

    ${$num1}[0]
    

    试试看。这应该可以按照您想要的方式工作。

    $$num1[0] 被解释为 ${$num1[0]}(所以 PHP 正在寻找 $n)。

    演示:http://codepad.org/yn1JUG5U

    【讨论】:

    • 当我从变量变量中查看内容时,我也尝试过,不幸的是它不起作用,php 不会显示错误或结果。是的,你是对的,在 php 寻找 $n 之前
    • 它现在可以工作了,当我用你的解决方案修改行时出错了,谢谢
    【解决方案2】:

    你可以这样迭代,但我不建议这样做。您需要重新考虑您的阵列设置。

    <?php
    $numbers1=array('32','16','29','41','36');
    $numbers2=array('13','50','47','7','39');
    $numbers3=array('3','4','29','35','31');
    
    for( $i=1; $i<=3; $i++ )
    {
        $array = 'numbers'.$i;
        
        foreach( $$array as $v )
        {
            echo $v .' ';
        }
        
        echo "\n";
    }
    ?>
    

    输出:

    32 16 29 41 36

    13 50 47 7 39

    3 4 29 35 31

    【讨论】:

      【解决方案3】:

      您必须插入如下内容:

      $my_array = $$num1;
      echo $my_array[0];
      

      编辑:去找@Rocket 的答案——稍微干净一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-03
        • 1970-01-01
        • 1970-01-01
        • 2013-05-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多