首页 > php教程 > php手册 > 改进的统计数组中元素出现次数的类

改进的统计数组中元素出现次数的类

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-06 19:37:45
原创
1370 人浏览过

从别人那里改进的,原来的不能区分1和1 无 ?phpclass Statistics { private $meta = array(); private $result=array('string'=array(),'number'=array()); private $meger=array('string'=array(),'number'=array()); function __construct() { $this-meta =

从别人那里改进的,原来的不能区分1和'1'

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

<?php

class Statistics {

 

    private $meta = array();

    private $result=array('string'=>array(),'number'=>array());

    private $meger=array('string'=>array(),'number'=>array());

 

    function __construct() {

        $this->meta = func_get_args();

    }

 

    public function show(){

        $this->count_elems($this->meta);

        var_dump($this->result);

    }

 

    private function count_elems($array) {

        //遍历数组

        foreach ($array as $value) {

            //如果$value不是数组,就判断其出现次数,否则调用本身再次遍历

            if(!is_array($value)) {

                //若变量作为数组下标,且该变量值可以转换成数字,如数字字符串,php会自动将其转化成数字,所有要分类保存

               if(is_string($value)){

                   if (!in_array($value, $this->meger['string'])) {

                       $this->meger['string'][] = $value;

                       $this->result['string'][$value] = 1;

                   } elseif (in_array($value, $this->meger['string'])) {

                       $this->result['string'][$value]++;

                   }

               }else{

                   if (!in_array($value, $this->meger['number'])) {

                       $this->meger['number'][] = $value;

                       $this->result['number'][$value] = 1;

                   } elseif (in_array($value, $this->meger['number'])) {

                       $this->result['number'][$value]++;

                   }

               }

            }else{

                $this->count_elems($value);

            }

        }

    }

}

 

$arr1 = array('a', 'b', array(1,2,3,4,'dd','fdf','nid','innid','iii','ieir'));

$arr2 = array('d', 'de', 'ef','2','5','8');

$arr3 = array('a', 'ef', 'r', 'q');

$arr4 = array('b', 'de', 'q', 'z');

$arr5 = array('1', 'de', 'q', '3r');

$arr6 = array(1, 1, 2, 'mn', '0y');

$arr7 = array(1, 'v2d', 'mn', '0y');

$s = new Statistics($arr1, $arr2, $arr3, $arr4, $arr5, $arr6, $arr7);

$s->show();

?>

登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
mvc - vue.js代码改进?
来自于 1970-01-01 08:00:00
0
0
0
java - 代码重复求改进方法
来自于 1970-01-01 08:00:00
0
0
0
JavaScript和CSS自动背景更改的进一步实践
来自于 1970-01-01 08:00:00
0
0
0
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板