我试图找出如何计算从查询字符串中提取的数字并将每个数字推入数组。所以如果数字为3,我想将1,2和3作为单独的数字推入数组。以下代码不起作用:
$number = $_GET['tics'];
$items = array();
for($numbers = 0; $numbers<$number; $numbers++) {
$items[] = $numbers;
}
var_dump显示带有此代码的空数组。任何想法如何使这项工作?
我希望密钥为“数字”,值为1,2,3等。
我确信这已在堆栈上多次解释,但在搜索时我发现只有像我这样的人才能提出的示例
答案 0 :(得分:3)
您可以使用range()
从头到尾返回一个元素数组,包括在内。
Q:\python>pip install bitstream
Collecting bitstream
Using cached bitstream-2.4.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\vm\AppData\Local\Temp\pip-build-jdkts06o\bitstream\setup.py", line 5, in <module>
import ConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\vm\AppData\Local\Temp\pip-build-jdkts06o\bitstream\
答案 1 :(得分:0)
您可以使用http://php.net/manual/en/function.range.php生成从最小到最大的数字列表。
<?php
$number = 5;
// Do validation on $number before passing it to range.
$result = range(1, $number);
print_r($result);
答案 2 :(得分:0)
对于初学者来说,你的循环不正确。
如果您通过$number = 3
for ($numbers = 0; $numbers < $number; $numbers++) {
会给你0,1,2。你需要把它改成以下:
for ($numbers = 1; $numbers <= $number; $numbers++) {
这将给你1,2,3。
无论如何,如果其他答案中提到的range()不是您所需要的,那么在这里招待另一个想法。
我希望密钥为“数字”,值为1,2,3等。
这不清楚你的意思,但我猜你可能希望数组键是$numbers
的值?在这种情况下,您可以按如下方式修改代码:
$number = (int)$_GET['tics'];
$items = array();
for ($numbers = 1; $numbers <= $number; $numbers++) {
$items[$numbers] = $numbers;
}
您的代码应该在某种程度上按预期工作(数字不正确)。它没有的原因可能是$_GET['tics']
没有价值。确保tics
数组中确实有$_GET
,并且您实际上并未发布POST(在这种情况下,您需要$_POST['tics']
)。
如果您将代码中的$_GET
更改为$_POST
但仍然无效,则tics
未设置或者值不大于0。