用“填充PHP数组”;至于;环

用“填充PHP数组”;至于;环,php,arrays,for-loop,population,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 ), );

我尝试用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);

?>
我还尝试将“$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[] =  array( // <-- NOTE THE []
        $url => array(
                CURLOPT_TIMEOUT => 10
        ),
);
$targets[]=array(//array(
CULLOPT_超时=>10
),
);

只需将循环体更改为:

$targets[] =  array( // <-- NOTE THE []
        $url => array(
                CURLOPT_TIMEOUT => 10
        ),
);
$targets[]=array(//array(
CULLOPT_超时=>10
),
);
使用
[]
将数组附加到
$targets
而不是覆盖

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

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

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

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

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

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

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

}
对于($i=0;$i数组)( CULLOPT_超时=>10 ), ); }
使用targets[]为每个循环创建一个新数组

$targets=array();
对于($i=0;$i数组)(
CULLOPT_超时=>10
),
);
}

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

因此,根据我们在注释中的推断:您的第一个问题是在循环中重新分配
$targets
变量,而不是使用
[]
符号附加到数组中

然后我们发现,您需要将
$targets
的键设置为
$url
,这样就可以通过将
$url
添加到方括号
[$url]
中来轻松解决这个问题。这给了我们:

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

因此,从我们在评论中得出的结论来看:您的第一个问题是在循环中重新分配
$targets
变量,而不是使用
[]
符号附加到数组中

然后我们发现,您需要将
$targets
的键设置为
$url
,这样就可以通过将
$url
添加到方括号
[$url]
中来轻松解决这个问题。这给了我们:

$targets[$url] = array(
    CURLOPT_TIMEOUT => 10
);
请尝试以下代码:

$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);
$maxPages=20;
$targets=array();
对于($i=0;$i=10)
);
}
回声“;
打印(目标);
尝试以下代码:

$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);
$maxPages=20;
$targets=array();
对于($i=0;$i=10)
);
}
回声“;
打印(目标);


$targets[]=…
您正在每个循环中重新分配
$targets
变量,而不是将其添加到itI中。我也尝试过,但它也没有给出正确的输出,请参阅更新的问题。在这种情况下,您希望
$targets[$url]=数组(CURLOPT_TIMEOUT=>10)
$targets[]=…
您正在每个循环中重新分配
$targets
变量,而不是将其添加到itI。我也尝试过,但它也没有给出正确的输出,请参阅更新的问题。在这种情况下,您希望
$targets[$url]=数组(CURLOPT_TIMEOUT=>10)
$targets[]=…
您正在每个循环中重新分配
$targets
变量,而不是将其添加到itI。我也尝试过,但它也没有给出正确的输出,请参阅更新的问题。在这种情况下,您希望
$targets[$url]=数组(CURLOPT_TIMEOUT=>10)谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献谢谢你的贡献