【问题标题】:Whats the error in following code (php)以下代码中的错误是什么(php)
【发布时间】:2012-04-26 21:37:32
【问题描述】:
<?php
foreach($menu_names as $menu_name){
$i=0;
echo "<li><a href='?subj=" .$subjects_ids[$i]. " '>".$menu_name."</a></li>";
$i++;
}
?>

$subjects_ids 是一个包含123 三个值的数组。但此处以 HTML 格式创建的链接仅包含所有三个 $menu_name?subj=3。第一个$menu_name 应该有subj=1,第二个应该有2,第三个应该有3

【问题讨论】:

  • 我在其他循环中检查了 $subjects_ids 数组,它分别回显了所有三个值 1,2 和 3。但不知道这里发生了什么。
  • 您是否尝试过以下解决方案。
  • @yusufiqbalpk 这是因为对于每个循环,您都将 $i 的值设置为 0;更改 $i 的值;您需要在 foreach 循环之外声明它。检查我的答案。
  • 糟糕,这是一个错误。非常感谢大家的大力帮助。喜欢 Stack Overflow 社区的出色指导方针。对所有人的爱
  • 现在!点击勾选标记..让他们给用户积分..

标签: php foreach


【解决方案1】:
$i=0;
foreach($menu_names as $menu_name){
    echo "<li><a href='?subj=" .$subjects_ids[$i]. " '>".$menu_name."</a></li>";
    $i++;
}

$i=0; 放在循环之外。

解释:

当您将 $i 变量放在 foreach 循环中并将其值设置为 0 时。每次循环数据时,$i 的值将设置为 $i=0;因此你应该把它放在 foreach 循环之外。

【讨论】:

  • 你第二次回答我的问题了。谢谢
【解决方案2】:

您每次都在循环中设置 $i = 0。

$i=0;
foreach($menu_names as $menu_name){
  echo "<li><a href='?subj=" .$subjects_ids[$i]. " '>".$menu_name."</a></li>";
  $i++;
}

是一个更好的方法。

【讨论】:

    【解决方案3】:
    <?php
    $i=0;
    foreach($menu_names as $menu_name){
    echo "<li><a href='?subj=" .$subjects_ids[$i]. " '>".$menu_name."</a></li>";
    $i++;
    }
    ?>
    

    你已经在循环中初始化了你的 $i 变量,它应该在循环开始之前被初始化,因此它的值保持不变并在所有 a 标签中添加 id 3

    【讨论】:

      【解决方案4】:

      您在每次迭代时初始化 $i var,使其始终指向索引为 0 的元素。 只需删除

      $i=0;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-25
        相关资源
        最近更新 更多