PHP array_count_values与多维数组 [英] PHP array_count_values with multidimensional array

查看:72
本文介绍了PHP array_count_values与多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个数组:

Array ( 
    [0] => stdClass Object ( [id] => 123 [name] => Alex ) 
    [1] => stdClass Object ( [id] => 124 [name] => John ) 
    [2] => stdClass Object ( [id] => 123 [name] => Alex ) 
    [3] => stdClass Object ( [id] => 124 [name] => John) 
    [4] => stdClass Object ( [id] => 126 [name] => Paul )
 )

我想输出如下:

 Array ( 
    [0] => Array ( [id] => 123 [name] => Alex [count] = 2 ) 
    [1] => Array ( [id] => 124 [name] => John [count] = 2 ) 
    [2] => Array ( [id] => 126 [name] => Paul [count] = 1 )
  )

我尝试使用 array_count_values($ array),但是没有工作。

I tried using array_count_values($array), but it doesn't work.

有什么办法解决这个问题吗?

Any ideas how to solve this?

推荐答案

您可以简单地使用 array_map 以及简单的 foreach 之类的

You can simply use array_map along with simple foreach like as

foreach(array_map("get_object_vars",$arr) as $val){
    $hash = $val['id'];
    if(isset($result[$hash])){
        $result[$hash]['count'] += $result[$hash]['count'];
    }else{
        $result[$hash] = $val;
        $result[$hash]['count'] = 1;
    }
}
print_r(array_values($result));

输出:

Array
(
    [0] => Array
        (
            [id] => 123
            [name] => Alex
            [count] => 2
        )

    [1] => Array
        (
            [id] => 124
            [name] => John
            [count] => 2
        )

    [2] => Array
        (
            [id] => 126
            [name] => Paul
            [count] => 1
        )

)

这篇关于PHP array_count_values与多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆