【发布时间】:2015-06-15 07:34:56
【问题描述】:
我正在尝试在 PHP 中填充一个数组,如下所示:
<?php
$maxPages = 20;
for ($i = 0; $i <= $maxPages; $i++) {
$url = 'http://127.0.0.1/?page='.$i;
$targets = array(
$url => array(
CURLOPT_TIMEOUT => 10
),
);
}
print_r($targets);
?>
但它似乎只显示最后填充的值:
Array
(
[http://127.0.0.1/?page=20] => Array
(
[13] => 10
)
)
我也尝试将“$targets =”更改为“$targets[] =”,但它会产生以下输出:
[0] => Array
(
[http://127.0.0.1/?page=0] => Array
(
[13] => 10
)
)
[1] => Array
(
[http://127.0.0.1/?page=1] => Array
(
[13] => 10
)
)
[2] => Array
(
[http://127.0.0.1/?page=2] => Array
(
[13] => 10
)
)
虽然我想要的输出是:
Array
(
[http://127.0.0.1/?page=0] => Array
(
[13] => 10
)
[http://127.0.0.1/?page=1] => Array
(
[13] => 10
)
[http://127.0.0.1/?page=2] => Array
(
[13] => 10
)
)
可能是一个简单的修复,但我看不到它。 有更多知识的人可以指出我的错误吗?
谢谢!
【问题讨论】:
-
$targets[] = ...您在每个循环中重新分配$targets变量,而不是添加到它 -
我也试过了,但它也没有给我正确的输出,请参阅更新的问题。
-
在这种情况下你想要
$targets[$url] = array(CURLOPT_TIMEOUT => 10);
标签: php arrays for-loop population