将数字字符串转换为数组键的数量

时间:2015-07-10 16:34:42

标签: php arrays foreach

我从用户输入中获取一个随机数(比如$n)。是否可以创建数字数组键array(1, 2, 3, ....., $n ),直到用户给出的数字?实际上我想在foreach循环中使用它并回显值。

这是我用过的代码之一。

$n = $_GET['num'];
foreach ($n as $a) {
    echo $a;
}

我该怎么做? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

foreach中创建一个临时的变量存储器,它在循环完成后执行后得到刷新。当您已经知道存在foreach关系时,请更喜欢使用key | value 要创建最高$ n的数组,您可以使用for循环:

$array_up_to_n = array();
for ($i=1; $i<=$n; $i++)
{
    $array_up_to_n[] = $i;
}
//you can verify it by:
print_r($array_up_to_n);

我希望你想要这个结果,我已经理解正确了

供您参考:
无论何时使用foreach并且想要在数组中得到结果,总是在foreach之前声明一个数组并在里面使用它,如:

$my_array = array();
foreach ($result as $row)
{
    $my_array[] = $row;
}

因为$row内存在此循环之后被刷新

答案 1 :(得分:0)

如果您不介意在此过程中销毁$n,您可以减少它:

for(;$n;$a[$n--]=1) {}

这会以反向数字顺序创建键。如果这很重要,您可以随时ksort()

销毁$n可能不是什么大问题,因为在for循环结束后count($a)会产生相同的值。