PHP二维数组:统计某个键名的相同键值个数

$arr = [
    ['is_reg' => 0, 'role' => 1, 'bk' => 1],
    ['is_reg' => 1, 'role' => 2, 'bk' => 2],
    ['is_reg' => 1, 'role' => 3, 'bk' => 3],
    ['is_reg' => 1, 'role' => 4, 'bk' => 4],
    ['is_reg' => 0, 'role' => 5, 'bk' => 5],
];

 

思路:先取列,再统计
$a = array_count_values(array_column($arr,'is_reg'))[0];

 

 

2、直接统计值大于1个数,取键名

$data = [
['name' => 'John', 'age' => 25, 'gender' => 'ale'],
['name' => 'Jane', 'age' => 30, 'gender' => 'female'],
['name' => 'John', 'age' => 25, 'gender' => 'ale'],
['name' => 'Jane', 'age' => 30, 'gender' => 'female'],
['name' => 'John', 'age' => 25, 'gender' => 'ale'],
];

$counts = array_filter(array_count_values(array_column($data, 'is_reg')), function($count) {
  return $count > 1;
});

 

array(2) {
[ale]=>
int(3)
[female]=>
int(2)
}

 

posted @ 2018-01-04 14:04  羽*枫  阅读(4779)  评论(0编辑  收藏  举报