为什么我的变量不在这个foreach循环中迭代?

时间:2011-08-11 07:27:26

标签: php

我试图通过使用变量迭代循环次数来使div ID具有唯一名称。出于某种原因,我的$ k变量似乎没有进展。这是代码:

<?php foreach($files as $media)
                { 
                    $k = 0;
                    ?>
                    <h3><?php echo $output[$j] ?></h3>
                    <div id='mediaspace<?php echo $k ?>'>This text will be replaced</div>

                    <script type='text/javascript'>
                      ...
                      so.write('mediaspace<?php echo $k ?>');
                    </script>
                <?php 
                $k = $k+1;
                } ?>

每次运行循环时,我的HTML输出只为$ k提供了一个0:

<div id='mediaspace0'>This text will be replaced</div>


                    <script type='text/javascript'>
                     ...                  so.write('mediaspace0');
                    </script>
                                        <h3>Rattletree Marimba Day</h3>
                    <div id='mediaspace0'>This text will be replaced</div>

                    <script type='text/javascript'>
                      ...                 so.write('mediaspace0');
                    </script>

任何帮助都非常感谢!

3 个答案:

答案 0 :(得分:10)

当然:

$k = 0;

在循环之前重置变量

答案 1 :(得分:2)

$k = 0;

在循环开始时,会在每次迭代开始时将$k重置为0

将它移到循环外:

<?php 
$k = 0;
foreach($files as $media)
{ 
...

答案 2 :(得分:1)

你在foreach的开头将$ k设置为0. 将它设置在外面。

$k = 0;
foreach($files as $media) {
...