我有一个看起来像这样的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个
我是否需要遍历数组或是否有可以更有效地执行此操作的函数?目前它是一个小型数据集,但它可能会变得相当大。
答案 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);
}