PHP数组 - 计算唯一ID

时间:2018-04-21 11:36:33

标签: php arrays

我有一个看起来像这样的PHP数组

Array
(
    [0] => Array
        (
            [events] => Array
                (
                    [0] => Array
                        (
                            [label] => apple
                            [id] => 3
                        )
                        [1] => Array
                        (
                            [label] => onion
                            [id] => 3
                        )
                        [2] => Array
                        (
                            [label] => pear
                            [id] => 2
                        )
                        [3] => Array
                        (
                            [label] => orange
                            [id] => 1
                        )
                        [4] => Array
                        (
                            [label] => grape
                            [id] => 41
                        )
                )
        )
)

我正在尝试获取唯一ID的总数,因此在上面的示例中,我希望得到4个

我是否需要遍历数组或是否有可以更有效地执行此操作的函数?目前它是一个小型数据集,但它可能会变得相当大。

2 个答案:

答案 0 :(得分:1)

您可以使用array_column获取所有ID,array_unique删除重复项,然后计算。

count(array_unique(array_column($array[0]['events'][0], 'id')))

答案 1 :(得分:0)

你必须以这种或那种方式循环它。我认为最有效率的是

function getUnique($arr){
 $val = array();
  foreach($arr[0]["events"] as $v){
   $val[$v["id"]] = true;
  }
 return count($val);
}