使用"填充PHP数组用于"环

时间:2015-06-15 07:34:56

标签: php arrays for-loop population

我试图在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
    )

)

我也尝试过改变:&#34; $ targets =&#34;到&#34; $ targets [] =&#34;但是它产生了这个输出:

[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
    )

可能很容易解决,但我无法看到它。 有更多知识的人可以指出我的错误吗?

谢谢!

5 个答案:

答案 0 :(得分:0)

就像将循环体更改为:

一样简单
$targets[] =  array( // <-- NOTE THE []
        $url => array(
                CURLOPT_TIMEOUT => 10
        ),
);

答案 1 :(得分:0)

$targets[] = array(
        $url => array(
                CURLOPT_TIMEOUT => 10
        ),
);

使用[]将数组附加到$targets而不是覆盖。

答案 2 :(得分:0)

println str.split("\\}\\),\\(\\{");

使用targets []为每个循环创建一个新数组

答案 3 :(得分:0)

从我们在评论中推断出的内容:您的第一个问题是您在循环中重新分配$targets变量,而不是使用[]表示法附加到数组。

然后我们发现您需要将$targets的密钥设置为$url,以便通过将$url添加到方括号[$url]中来轻松修复。这给了我们:

$targets[$url] = array(
    CURLOPT_TIMEOUT => 10
);

答案 4 :(得分:0)

试用此代码:

$maxPages = 20;
$targets = array();
for ($i = 0; $i <= $maxPages; $i++) {

    $url = 'http://127.0.0.1/?page='.$i;

        $targets[$url] =  array(
            CURLOPT_TIMEOUT => 10
        );

}
echo "<pre>";
print_r($targets);