下面是详细讲解“PHP统计二维数组元素个数的方法”的完整攻略。
前言
在实际开发中,我们时常需要统计二维数组元素的个数,比如统计每个分类下的文章数、用户发布的文章数等。本篇攻略将分享四种方法来实现对二维数组元素个数的统计。
方法一:循环遍历法
循环遍历法是最基础的方法,它通过循环数组来进行统计。
<?php
// 定义二维数组
$arr = array(
array('id' => 1, 'name' => '张三'),
array('id' => 2, 'name' => '李四'),
array('id' => 3, 'name' => '王五'),
array('id' => 4, 'name' => '刘六'),
array('id' => 1, 'name' => '赵七')
);
$count = [];
foreach ($arr as $v) {
$count[$v['id']] = isset($count[$v['id']]) ? $count[$v['id']] + 1 : 1;
}
print_r($count); // 输出结果:Array ( [1] => 2 [2] => 1 [3] => 1 [4] => 1 )
上述代码中,通过foreach
循环遍历数组$arr
中的每一个元素,利用$v['id']
来表示分类ID,然后把每个分类ID作为数组下标,把对应的元素累加到$count
数组中。
方法二:array_column()和array_count_values()法
array_column()
函数可以取出二维数组中指定key的一维数组,array_count_values()
函数可以统计数组中所有值出现的次数,把结果保存到一个新数组中。
<?php
// 定义二维数组
$arr = array(
array('id' => 1, 'name' => '张三'),
array('id' => 2, 'name' => '李四'),
array('id' => 3, 'name' => '王五'),
array('id' => 4, 'name' => '刘六'),
array('id' => 1, 'name' => '赵七')
);
$count = array_count_values(array_column($arr, 'id'));
print_r($count); // 输出结果:Array ( [1] => 2 [2] => 1 [3] => 1 [4] => 1 )
上述代码中,通过array_column()
函数提取了二维数组中下标为id
的一维数组,然后通过array_count_values()
函数统计出现次数。
方法三:array_reduce()法
array_reduce()
函数可以将数组化为一个值。这个函数接收两个参数:数组和回调函数。
<?php
// 定义二维数组
$arr = array(
array('id' => 1, 'name' => '张三'),
array('id' => 2, 'name' => '李四'),
array('id' => 3, 'name' => '王五'),
array('id' => 4, 'name' => '刘六'),
array('id' => 1, 'name' => '赵七')
);
$count = array_reduce($arr, function ($result, $value) {
if (!isset($result[$value['id']])) {
$result[$value['id']] = 1;
} else {
$result[$value['id']]++;
}
return $result;
}, []);
print_r($count); // 输出结果:Array ( [1] => 2 [2] => 1 [3] => 1 [4] => 1 )
上述代码中,通过array_reduce()
函数遍历数组,并通过匿名函数处理每个元素,最终得到的结果存放在$count
数组中。
方法四:array_walk()法
array_walk()
函数可以对数组中的每个元素执行回调函数。
<?php
// 定义二维数组
$arr = array(
array('id' => 1, 'name' => '张三'),
array('id' => 2, 'name' => '李四'),
array('id' => 3, 'name' => '王五'),
array('id' => 4, 'name' => '刘六'),
array('id' => 1, 'name' => '赵七')
);
$count = [];
array_walk($arr, function ($value) use (&$count) {
$count[$value['id']] = isset($count[$value['id']]) ? $count[$value['id']] + 1 : 1;
});
print_r($count); // 输出结果:Array ( [1] => 2 [2] => 1 [3] => 1 [4] => 1 )
上述代码中,通过array_walk()
函数遍历数组元素,对每个元素执行匿名函数,最终得到的结果存放在$count
数组中。
结束语
这就是统计二维数组元素个数的四种方法了,我们可以根据实际需求来选择使用不同的方法,以达到最优解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP统计二维数组元素个数的方法 - Python技术站