从php中的其他变量生成数组变量名后输出数组元素

时间:2012-09-06 21:14:26

标签: php arrays variables echo

我不做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”。

我很久以前在stackoverflow上提出了一个类似的问题,当时我开始使用php,但是这个问题上的aswers不能用于这种情况,也没有2小时我在这里搜索谷歌搜索在stackoverflow上。

3 个答案:

答案 0 :(得分:2)

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

${$num1}[0]

试试吧。这应该按你想要的方式工作。

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

DEMO:http://codepad.org/yn1JUG5U

答案 1 :(得分:1)

你可以像这样迭代,但我不推荐它。您需要重新考虑阵列设置。

<?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

答案 2 :(得分:0)

您必须插入以下内容:

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

编辑:去寻找@Rocket的答案 - 稍微清洁。