Php if语句后每个输出的限制
早上好 我试图获得前十名的国家,但想从产出中排除几个国家。我意识到下面的代码正在过滤10个结果,所以当其中一个国家在其中时,它将被过滤。例如,结果只是前6名。但我需要一个前十名。有谁能告诉我,在不考虑4个国家的情况下,如何将每份声明的有效期限制在10个 多谢各位Php if语句后每个输出的限制,php,Php,早上好 我试图获得前十名的国家,但想从产出中排除几个国家。我意识到下面的代码正在过滤10个结果,所以当其中一个国家在其中时,它将被过滤。例如,结果只是前6名。但我需要一个前十名。有谁能告诉我,在不考虑4个国家的情况下,如何将每份声明的有效期限制在10个 多谢各位 <table class="table" > <thead> <tr> <th><?=l('Top 10 landen')?>&
<table class="table" >
<thead>
<tr>
<th><?=l('Top 10 landen')?></th>
<th><?=l('Bezoek')?></th>
</tr>
</thead>
<tbody>
<?php foreach(array_slice($countries, 0, 10) as $country => $cdata)
if($country != 'United States' && $country != 'Canada' && $country != 'China' && $country != 'Mexico') {
?>
<tr>
<td><?=$country?></td>
<td><?=$cdata['views']?></td>
</tr>
<?php } ?>
</tbody>
</table>
我对php了解不多,但我认为这可以解决您的问题
您可以取一个整数变量
i=0
,并用i++递增当i>10
时,每个if循环中的code>和循环中断
<table class="table" >
<thead>
<tr>
<th><?=l('Top 10 landen')?></th>
<th><?=l('Bezoek')?></th>
</tr>
</thead>
<tbody>
<?php $i = 0;
foreach ($countries as $country => $cdata) {
if($country != 'United States' && $country != 'Canada' && $country != 'China' && $country != 'Mexico') {
?>
<tr>
<td><?=$country?></td>
<td><?=$cdata['views']?></td>
</tr>
<?php
$i++;
}
if($i > 10) break; } ?>
</tbody>
</table>
如果从MySQL查询中获取了$countries
数组,则可以在MySQL查询中对其进行过滤:
SELECT id FROM `countries` WHERE id NOT IN("United States", "Canada", "China", "Mexico") LIMIT 10
显然,您可以构建查询来接受PHP中排除的国家的可配置数组。这会更快,因为这样可以避免对生成的数组进行切片和过滤。通过一次查询,您可以得到您想要的。使用排除值在mysql查询中选择国家/地区。您可以获取一个整数变量i=0并用i++递增;在每个if循环中,当i=9时,为循环中断..谢谢Sac,成功了!哦,太好了。。我刚刚给出了我的答案。不需要做array\u-slice
只需做foreach
然后break
哦,对不起,我不知道为什么array\u-slice
会在那里,因为我说过我不是php人。。。你能更新我的答案吗?谢谢..更新您的答案-现在您只需在数组上迭代,当值达到10时-break
。此外,PHP变量声明并与美元符号一起使用,如下所示:$i=0$i++