PHP:为什么要反复打印前3个数组值?
我是编程新手,尝试学习PHP以及PHP和HTML之间的代码分离 我想用数组($list)中的值替换HTML文件($replacethtml)中的某些单词。HTML文件由一个表行组成,其中有3个要替换的值($ip、$date、$browser)。我想打印同一行几次(每次都使用数组中的新值),直到打印完数组中的所有值。但我的代码似乎反复打印前3个值,我不知道为什么。我肯定我错过了一些东西,希望能得到一些帮助PHP:为什么要反复打印前3个数组值?,php,arrays,for-loop,indexing,echo,Php,Arrays,For Loop,Indexing,Echo,我是编程新手,尝试学习PHP以及PHP和HTML之间的代码分离 我想用数组($list)中的值替换HTML文件($replacethtml)中的某些单词。HTML文件由一个表行组成,其中有3个要替换的值($ip、$date、$browser)。我想打印同一行几次(每次都使用数组中的新值),直到打印完数组中的所有值。但我的代码似乎反复打印前3个值,我不知道为什么。我肯定我错过了一些东西,希望能得到一些帮助 $list = array('ip1', 'date1', 'browser1','ip2'
$list = array('ip1', 'date1', 'browser1','ip2','date2','browser2');
$n = 0;
for ($i=0 ; $i < count($list)-1 ; $i++){
if($n > count($list)-1){
break;
}
$replacehtml = str_replace($ip, $list[$n], $replacehtml);
$n++;
$replacehtml = str_replace($date, $list[$n], $replacehtml);
$n++;
$replacehtml = str_replace($browser, $list[$n], $replacehtml);
$n++;
echo $replacehtml;
}
虽然应该是:
ip1 date1 browser1
ip2 date2 browser2
为什么定义变量
$i
,但从不使用它?然后通过增加变量$n
而不是使用有用的内置函数来复制for
循环的函数
为了实现您想要的输出,我将使用以下更简单的代码:
$list=array('ip1','date1','browser1','ip2','date2','browser2');
对于($i=0;$i
这应该可以实现您的预期输出。除了重复循环外,主要的问题是覆盖要替换到的原始字符串
$replacehtml = str_replace($ip, $list[$n], $replacehtml);
因此,第二次循环时,$replacethtml
已经替换了所有值
只需使用另一个变量将值放入其中,然后进行后续替换
$newhtml = str_replace($ip, $list[$n], $replacehtml);
然后
$newhtml = str_replace($date, $list[$n], $newhtml);
等等,最后
echo $newhtml;
此代码段不完整,请提供其他信息,如
$ip
和其他变量谢谢,因为我还是新手,我一定错过了此信息。我尝试使用$I,但无法使其工作,因此我认为需要一个额外的变量。您的建议+下面的评论使我的程序工作,因为下面提到的覆盖仍然发生在这里。
echo $newhtml;