Php 如何检查数组中的值是否大于
我有以下SQL语句:Php 如何检查数组中的值是否大于,php,mysql,arrays,Php,Mysql,Arrays,我有以下SQL语句: $query = "SELECT item, COUNT(*) as number FROM shop GROUP BY item"; 这将给我以下结果: item number item1 23 item2 15 item3 4 我想用它来制作菜单项,所以通常菜单看起来: item1 item2 item3 但是我想检查一个项目是否少于10条记录,我不想显示这个项目 因此,在本例中,菜单如下所示: item1 item2
$query = "SELECT item, COUNT(*) as number FROM shop GROUP BY item";
这将给我以下结果:
item number
item1 23
item2 15
item3 4
我想用它来制作菜单项,所以通常菜单看起来:
item1
item2
item3
但是我想检查一个项目是否少于10条记录,我不想显示这个项目
因此,在本例中,菜单如下所示:
item1
item2
你知道如何做到这一点吗
我想在PHP中这样做,因为我需要查询中的所有项,但只想显示大于10的项,以后需要其他项。只需将查询从
选择商品,按商品将(*)作为店铺组中的编号进行计数
到
选择商品,按编号>=10的商品将(*)计算为店铺组中的编号
选择商品,按商品将(*)作为店铺组中的编号进行计数
到
选择商品,按编号>=10的商品将(*)计数为店铺组中的编号
有两个选项可过滤数据,因此仅显示超过10的行
在SQL查询中
__
这将导致您仅从数据库接收请求的行
使用PHP进行过滤-每次您想要打印菜单或测试菜单时,只需从查询中重新获取数组中“number”的值即可。您还可以分配新数组并插入包含大于10的“number”的所有值李>
有两个选项可以过滤数据,因此只有大于10的行才会出现
在SQL查询中
__
这将导致您仅从数据库接收请求的行
使用PHP进行过滤-每次您想要打印菜单或测试菜单时,只需从查询中重新获取数组中“number”的值即可。您还可以分配新数组并插入包含大于10的“number”的所有值李>
我注意到php被标记了。出于选项的考虑,如果您要按原样从数据库中获取不需要的数据,我将如何在php中分离这些数据:
foreach ($data as $item) {
$num = (int) $item['number']; // force of habit
if ($num >= 10) {
// display it
}
}
我可能会在数据库步骤中分离数据,但如果这是您想要采取的路线,则此操作有效。我注意到php被标记。出于选项的考虑,如果您要按原样从数据库中获取不需要的数据,我将如何在php中分离这些数据:
foreach ($data as $item) {
$num = (int) $item['number']; // force of habit
if ($num >= 10) {
// display it
}
}
我可能会在数据库步骤中分离数据,但如果这是您想要采用的路径,则此操作有效。因为您确实需要在PHP中执行此操作,您可以使用此操作,使用将删除编号小于10的项:
$more_than_ten = array_filter($items, function ($i) { return $i['number'] >= 10; });
使用SQL进行操作将是一个更好的解决方案(关于性能)。如果需要,可以使用HAVING
子句(不能执行其中number>=10
):
由于您确实需要在PHP中执行此操作,您可以使用,使用将删除number
小于10的项:
$more_than_ten = array_filter($items, function ($i) { return $i['number'] >= 10; });
使用SQL进行操作将是一个更好的解决方案(关于性能)。如果需要,可以使用HAVING
子句(不能执行其中number>=10
):
如果您想在PHP中实现这一点,那么您可以这样做
function filterArray($value){
return ($value.number > 10);
}
$filteredArray = array_filter($yourDBArray, 'filterArray');
foreach($filteredArray as $k => $v){
//your desired array
}
就速度而言,Mysql选项很好,正如上面所建议的。如果您想在PHP中实现这一点,那么您可以这样做
function filterArray($value){
return ($value.number > 10);
}
$filteredArray = array_filter($yourDBArray, 'filterArray');
foreach($filteredArray as $k => $v){
//your desired array
}
就速度而言,Mysql选项如上所述很好。其中number>10
。?或number>=10?number是count的别名,因此他实际上必须让number>=10是的,你不能做其中count(*)>10
…但是如何在PHP中使用数组?其中number>10
。?或者number>=10?number是count的别名,所以他实际上必须使用number>=10是的,你不能使用其中count(*)>10
…但是如何在PHP中使用数组?确实,我正在寻找选项2,但我确实不知道如何使用,我正在寻找第二种选择,但我不知道怎么做