【问题标题】:How to solve this problem in php and html?如何在 php 和 html 中解决这个问题?
【发布时间】:2019-11-09 22:32:22
【问题描述】:

我想打印 1000 个带有 HTML 标记的数字,并与一个对象向量进行比较。

<?php
for ($i = 1; $i <= 1000; $i++) {
    foreach ($resposta as $row) {
?>
        <?php if ($row['estado_idestado'] == 5 && $row['numero_ecolhido'] == $i) { ?>
            <a href="javascript:void(0);" id="number_2" class="rifa_number item_pago" data-id="179930" data-rifa-number="2" data-name="">
                <?php echo $i; ?>
            </a>
        <?php } elseif ($row['estado_idestado'] == 4 && $row['numero_ecolhido'] == $i) { ?>
            <a href="javascript:void(0);" id="number_10" class="rifa_number item_reservado" data-id="279676" data-rifa-number="10" data-name="">
            <?php
                echo $i;
            ?>
            </a>
        <?php
            } else {
        ?>
            <a href="javascript:void(0);" id="number_3" class="rifa_number item_disponivel" data-id="" data-rifa-number="3" data-name="">
            <?php
                echo $i;
            ?>
            </a>
        <?php
            }
        ?>
    <?php
    }
}
?>

注意,向量中的查询是定义&lt;a&gt; &lt;/a&gt;的类,我希望它打印1000个数字....代码应该如下图所示,但我找不到逻辑解决了这个问题。

【问题讨论】:

  • 我忘记关闭那边的课程了。
  • 如果您需要更改您的问题 - 只需使用 Edit
  • 你到底是什么意思:“1000 个带有 html 标签的数字”?你能举一个你想为几个数字生成的html代码的例子吗?在哪些情况下应该设置哪些类,或者类 1、类 2、类 3 是正确的名称? echo $i 看起来很可疑。
  • 我在 php 中的 1000 个交互之一之前创建

标签: php html arrays


【解决方案1】:

问题不清楚,上面有几个明显的问题: - 硬编码的 id 属性,这将产生重复的 id ,这将使您的 javascript 行为变得有趣。 - foreach 根本没有必要,你会有一个你不想要的重复动作。 - 如果数组$resposta 包含少于 1000 项或多于 1000 项,则一件事尚不清楚。

如果数组 $resposta 的项目少于 1000 个,则应构建一个包含 1000 个项目的空数组并合并 2 个数组,这样$resposta 将拥有 1000 个项目

在我的代码中,我假设 $resposta 有 1000 项,无论您是自己填写还是从数据库中获取 1000 项。

<?php
    for($i = 0; $i<=1000; $i++) {
      if( $resposta[$i]['estado_idestado']==5 && $resposta[$i]['numero_ecolhido']==$i ){ 
?>

<a href="javascript:void(0);" id="number_2" class="rifa_number item_pago" data-id="179930" data-rifa-number="2" data-name=""> <?php echo $i;  ?> </a>

<?php
     }elseif( $resposta[$i]['estado_idestado']==4 && $resposta[$i]['numero_ecolhido']==$i ){  
?>

<a href="javascript:void(0);" id="number_10" class="rifa_number item_reservado" data-id="279676" data-rifa-number="10" data-name=""><?php  echo $i;  ?></a>

<?php 
    }else{ 
?>

 <a href="javascript:void(0);" id="number_3" class="rifa_number item_disponivel" data-id="" data-rifa-number="3" data-name=""><?php   echo $i; ?></a>

    <?php
  next($resposta)
                }
        }
    ?>

我没有更改硬编码的 id 属性,你应该按照你的逻辑需要自己做。

如果 $resposta 没有足够的项目(1000 个项目)它将产生一个通知,您可以通过在产生错误的行中添加 @ 来抑制通知或使用 error_reporting() 函数


编辑:如何制作所需长度的数组

只需使用array_pad() function,例如:

$arr = [
    ['id'=>0,'name'=>'mark'],
    ['id'=>1,'name'=>'micheal'],    
    ['id'=>2,'name'=>'ahmed'],
    ['id'=>3,'name'=>'grin'],
    ['id'=>4,'name'=>'Torvi'],
    ['id'=>5,'name'=>'mohamed'],
    ['id'=>6,'name'=>'kayla'],  
];

$new = array_pad($arr, 20,0);

这将产生 20 个元素的数组,并且从索引 7 开始,它将用零填充。 function docs

所以在我们这里

$newresposta = array_pad( $resposta,1000,0);

然后您可以在上面添加上一行后继续使用原始答案中的代码。

【讨论】:

  • 后面会改id,但是数组不能有0到1000的维度,代码不行!
  • 你可以在上面的代码之前做进一步的步骤,我上面也提到了这一点,使用 range() 函数创建一个空数组然后合并它,我将在原始答案下方更新答案
  • 我发现还有另一种更简洁的方法,然后我会将其添加到编辑后的答案中
猜你喜欢
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-24
  • 2011-09-19
相关资源
最近更新 更多