可能重复:
搜索包含字符串的PHP数组元素
我已经创建了一个mysql查询,它可以浏览多个产品,所有产品都包含以下信息:
产品ID产品名称产品价格和产品类别
在页面的下方,我通过foreach和一些'ifs'循环使用这些,所以它只显示那些名称在一个div中包含'x'的产品,并在另一个div中显示名称包含'y'的那些产品.
在进行循环之前,我很难计算每个div中会有多少产品.
基本上,我要问的是:
如何计算满足特定条件的数组中的所有元素?
添加了显示循环的代码:
<div id="a">
<?php
$i = 1;
foreach ($products AS $product) {
if (strpos($product->name,'X') !== false) {
=$product->name
}
$i++;
} ?>
</div>
<div id="b">
$i = 1;
foreach ($products AS $product) {
if (strpos($product->name,'Y') !== false) {
=$product->name
}
$i++;
} ?>
</div>
Run Code Online (Sandbox Code Playgroud)
在我实际进行循环之前,我想知道其中有多少会在这里.
我正在尝试优化一个查询,该查询(不必要地)计算了表中近 900 000 行,这需要太长时间。
该表包含发生在 Web 应用程序不同部分的事件的日志条目,我想知道当该类型的行数为 1000 或更少时每种日志类型存在多少未读日志条目,但最多计数 1001 行如果计数为 1001 或更多。
之后我不需要再计算了,我只会为该日志类型输出“超过 1000”。
假设我们有下表调用my_logs了数据:
id log_type log_text is_read
1 'Type 1' 'Text 1' 1
2 'Type 1' 'Text 2' 1
3 'Type 1' 'Text 3' 0
4 'Type 1' 'Text 4' 0
5 'Type 1' 'Text 5' 0
6 'Type 1' 'Text 6' 0
7 'Type 2' 'Text 7' 0
8 'Type 2' 'Text 8' 0
Run Code Online (Sandbox Code Playgroud)
在此示例中,我当前的查询如下所示:
SELECT log_type, COUNT(*) AS unread FROM my_logs WHERE is_read …