我不做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上。
答案 0 :(得分:2)
您需要使用{}
,因此PHP知道如何解释您的变量。
${$num1}[0]
试试吧。这应该按你想要的方式工作。
$$num1[0]
被解释为${$num1[0]}
(因此PHP正在寻找$n
)。
答案 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的答案 - 稍微清洁。