Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 内部foreach始终具有外部foreach的最后一次迭代_Php_Arrays_Foreach - Fatal编程技术网

Php 内部foreach始终具有外部foreach的最后一次迭代

Php 内部foreach始终具有外部foreach的最后一次迭代,php,arrays,foreach,Php,Arrays,Foreach,我有以下foreach循环(带有内部foreach循环): 此循环正在这两个数组中迭代: $option_names = array ( 'API_URL'=>'api-url', 'API_CDN_URL'=>'cdn-url', 'API_USERNAME'=> 'api-username' ); $options_default = array (

我有以下
foreach
循环(带有内部
foreach
循环):

此循环正在这两个数组中迭代:

    $option_names = array (
                'API_URL'=>'api-url',
                'API_CDN_URL'=>'cdn-url',
                'API_USERNAME'=> 'api-username'
    );

    $options_default = array (
            'api_url' => 'url1', 
            'cdn_url' => 'url2', 
            'api_username' => 'test', 
);
但是,
$temp
的值始终设置为
$options\u default
数组中的最后一个键/值对。有人能提出这里的问题吗

->预期产量

因此,循环将调用这三个update选项(假设我只是传递$value作为第二个参数以方便使用):


再想想你的
foreach
循环的构造,以及为什么它没有达到你想要的效果。您当前在
$option\u name
上循环了三次,导致对
update\u option
的九次调用。还可以查看
update\u选项
的参数。在代码中,您向它传递两个参数:一个字符串和一个数组。但你显然想要的是两条线

对于此任务,您可以将与结合使用:

$iterator = new MultipleIterator();
$iterator->attachIterator(new ArrayIterator($option_names));
$iterator->attachIterator(new ArrayIterator($options_default));

foreach ($iterator as $values) {
    update_option($values[0], $values[1]);
}

希望这有助于将
'API\u USERNAME'='API USERNAME'
更改为
'API\u USERNAME'=>'API USERNAME'
。。。出现语法错误…:)你的预期结果是什么?你问的问题让人困惑吗?@KaushaMehta我想那是打字错误mistake@KaushaMehta谢谢你,这不是答案,不幸的是,这只是一个错误。它不会打三个电话,会打九个。
update_option(api-url,url1);
update_option(cdn-url,url2);
update_option(api-username,test);
$iterator = new MultipleIterator();
$iterator->attachIterator(new ArrayIterator($option_names));
$iterator->attachIterator(new ArrayIterator($options_default));

foreach ($iterator as $values) {
    update_option($values[0], $values[1]);
}