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]);
}