代码之家  ›  专栏  ›  技术社区  ›  Martin AJ

我怎样才能超自然地计算数组的项?

php
  •  0
  • Martin AJ  · 技术社区  · 6 年前

    我有一个这样的数组:

    $arr [
             ["name" = "Martin", "type" = "0"],
             ["name" = "Jack", "type" = "0"],
             ["name" = "Tiam", "type" = "1"]
         ];
    

    现在我需要计算 type=0 . 当前我使用 count($arr) 谁会回来? 3 . 预期结果是 2 .


    我可以使用一个循环加上一个if语句来实现这一点。但是没有更好的主意吗?

    3 回复  |  直到 6 年前
        1
  •  2
  •   Ionel Lupu    6 年前

    试试这个:

    $result = array_filter($arr,function($item){
        return $item['type'] == 0;
    });
    
    echo count($result);
    

    Array Filter Docs

    Functional Programming in PHP

        2
  •  2
  •   Jan Myszkier    6 年前

    array_filter应该做到这一点:

    $arr = [
    ["name" => "Martin", "type" => "0"],
    ["name" => "Jack", "type" => "0"],
    ["name" => "Tiam", "type" => "1"]
    ];
    
    $arr = array_filter($arr,function($item){
        return $item['type']==0;
    });
    
    print_r($arr);
    
        3
  •  1
  •   Girish Ninama    6 年前

    试试这个

            $arr  = array(
                array(
                'name' => 'Martin',
                'type' => '0',
            ),
                array(
                'name' => 'Martin',
                'type' => '0',
            ),
                array(
                'name' => 'Martin',
                'type' => '25',
            )
            );
    
            $arr = array_filter($arr,function($item){
        return $item['type']==0;
    });
    
    echo count($arr);
            die;