Php if语句后每个输出的限制

Php if语句后每个输出的限制,php,Php,早上好 我试图获得前十名的国家,但想从产出中排除几个国家。我意识到下面的代码正在过滤10个结果,所以当其中一个国家在其中时,它将被过滤。例如,结果只是前6名。但我需要一个前十名。有谁能告诉我,在不考虑4个国家的情况下,如何将每份声明的有效期限制在10个 多谢各位 <table class="table" > <thead> <tr> <th><?=l('Top 10 landen')?>&

早上好

我试图获得前十名的国家,但想从产出中排除几个国家。我意识到下面的代码正在过滤10个结果,所以当其中一个国家在其中时,它将被过滤。例如,结果只是前6名。但我需要一个前十名。有谁能告诉我,在不考虑4个国家的情况下,如何将每份声明的有效期限制在10个

多谢各位

<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++