php 数组 统计数据次数,PHP 多维数组统计元素出现的次数 - 文章教程

最近有一个好友询问我,如何统计数组里面元素出现的次数,数据来自数据库,别问我为什么不在数据库里面统计,现在要在 PHP 里面统计元素的个数。

ed46c7f325e863754eb5aa9ca3cbed6f.png

最容易想到的就是遍历循环,然后判断值是否相等,然后统计 +1,那就开始这么做:

原始的数组如下:

$s_arr = array(

array('area_code' => 853,'telephone_number' => 251654656),

array('area_code' => 65,'telephone_number' => 251654656),

array('area_code' => 853,'telephone_number' => 251654656),

array('area_code' => 54,'telephone_number' => 251654656),

array('area_code' => 853,'telephone_number' => 251654656),

array('area_code' => 548,'telephone_number' => 251654656),

array('area_code' => 853,'telephone_number' => 251654656),

array('area_code' => 65,'telephone_number' => 251654656),

array('area_code' => 853,'telephone_number' => 251654656),

array('area_code' => 54,'telephone_number' => 251654656),

array('area_code' => 853,'telephone_number' => 251654656),

array('area_code' => 65,'telephone_number' => 251654656),

array('area_code' => 853,'telephone_number' => 251654656),

array('area_code' => 54,'telephone_number' => 251654656),

array('area_code' => 853,'telephone_number' => 251654656),

array('area_code' => 548,'telephone_number' => 251654656),

array('area_code' => 853,'telephone_number' => 251654656),

array('area_code' => 65,'telephone_number' => 251654656),

array('area_code' => 853,'telephone_number' => 251654656),

array('area_code' => 54,'telephone_number' => 251654656),

);

上面的数组中,我们需要统计 area_code 的值出现的次数,首先我们定义一个临时的数组,用于统计每个元素出现的次数,因为我们可能并不知道 area_code 具体的值,然后遍历循环数组。

$tem_arr = array();

foreach($s_arr as $key1 => $s_arr_item){

if(empty($tem_arr)){

$tem_arr[] = array($s_arr_item['area_code'], 1);

}else{

$is_in_tem_arr = false;

foreach($tem_arr as $key => $tem_arr_item){

if($tem_arr_item[0] == $s_arr_item['area_code']){

$tem_arr[$key][1] = $tem_arr_item[1] + 1;

$is_in_tem_arr = true;

break;

}

}

if(!$is_in_tem_arr){

$tem_arr[] = array($s_arr_item['area_code'], 1);

}

}

}

先判断 $tem_arr 是否为空,也就是第一次循环的时候,如果为空,那么就直接添加元素,第二次循环开始,就要遍历临时数组 $tem_arr ,然后判断原数组中的 area_code 的值是否在临时数组中,如果在就将他的值 +1 ,如果不在,就直接新添加一个元素。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值