我想用数字下面的HTML标签打印1000个数字,并与对象向量进行比较。
<?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
}
}
?>
请注意,向量中的查询是要定义<a> </a>
的类,我希望它打印出1000个数字...。代码应如下图所示,但是我找不到解决此问题的逻辑。
答案 0 :(得分:0)
这个问题尚不清楚,那里有几个明显的问题:
-硬编码的id属性,它将产生一个重复的id,这会使您的JavaScript变得有趣。
-根本不需要foreach
,并且您将执行不需要的重复操作。
-尚不清楚数组$resposta
的项目少于1000个还是项目多于1000个。
如果数组$resposta
的项目少于1000个,则应构建一个包含1000个项目的空数组并合并2个数组,这样,您将拥有$resposta
的1000个项目
在我的代码中,无论您自己填写还是从数据库中获得1000项,我都假设$resposta
有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个项目),它将产生一个通知,您可以通过在产生错误的行上添加add @ @来取消该通知,或使用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);
,然后在上面添加上一行之后,可以继续使用原始答案中的代码。