Php 如何检查数组中的值是否大于

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

我有以下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
你知道如何做到这一点吗


我想在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,但我确实不知道如何使用,我正在寻找第二种选择,但我不知道怎么做