编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

把瑞文测试的Excel的数据转换为代码,PHP代码实现

wxchong 2024-07-04 09:33:54 开源技术 14 ℃ 0 评论

客户需求是把Excel的分数和年龄对应的Excel数据展示在结果页面

解决思路分析:

纵坐标分数1-72, 横坐标年龄5.5-64

数据不具有连续性,写if、else判断要72x23个,有一些可以合并,大概还是100+个if else

换个思路,横竖就是二维数组,把excel的数据解析为二维数组即可,直接粘贴复制到记事本,用\n 换行分割为一层,用空格分割为二层数组

代码如下:

 $str = "54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
56  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
58  60  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
60  60  58  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
62  62  60  58  55  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
65  64  62  60  58  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
68  65  64  63  60  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
70  66  65  65  62  56  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
73  67  66  66  64  58  56  55  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
75  68  68  68  65  60  58  56  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
80  69  69  69  66  61  60  58  55  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
85  70  70  70  66  62  61  59  56  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
90  75  75  73  67  63  61  60  57  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 62
92  80  80  75  67  64  62  60  58  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 65
95  85  85  76  68  65  62  61  59  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 54  67
98  88  86  77  68  66  63  61  60  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 58  68
100 90  86  78  69  68  64  62  60  55  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 64  69
102 92  87  78  70  70  64  62  61  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 54  66  70
104 94  87  79  71  71  65  62  62  56  55  <54 <54 <54 <54 <54 <54 <54 <54 <54 58  67  70
105 95  88  80  72  71  65  63  62  56  55  54  <54 <54 <54 <54 <54 <54 <54 <54 64  69  71
106 97  89  82  73  72  65  63  63  56  56  55  <54 <54 <54 <54 <54 <54 <54 54  65  70  71
108 99  90  84  74  72  66  64  64  57  56  56  <54 <54 <54 <54 <54 <54 <54 58  67  71  72
109 100 91  85  75  73  66  64  64  57  57  57  <54 <54 <54 <54 <54 <54 <54 62  68  72  73
110 103 92  86  78  73  66  65  65  58  58  58  <54 <54 <54 <54 <54 <54 <54 64  69  73  74
112 105 93  86  80  74  67  66  65  59  59  59  <54 <54 <54 <54 <54 <54 <54 65  70  73  75
115 106 93  87  81  74  67  66  65  60  60  60  <54 <54 <54 <54 <54 <54 54  67  71  74  76
116 108 94  88  82  75  67  66  66  61  60  61  <54 <54 <54 <54 <54 <54 58  68  72  75  77
118 110 95  89  83  76  68  66  66  62  61  62  <54 <54 <54 <54 <54 <54 62  69  73  76  78
120 111 95  90  83  78  68  67  66  62  62  62  <54 <54 <54 <54 <54 54  64  70  74  77  79
123 112 96  91  84  80  68  67  67  63  63  63  <54 <54 <54 <54 <54 58  65  70  75  77  80
125 113 97  92  85  81  69  67  67  63  64  64  <54 <54 <54 <54 <54 62  67  71  76  78  81
126 114 98  93  86  82  69  67  67  64  64  64  <54 <54 <54 <54 54  64  68  72  77  79  81
127 115 98  94  88  83  70  68  68  65  65  65  <54 <54 <54 <54 58  67  69  73  77  80  82
128 116 99  95  90  83  71  68  68  65  65  65  <54 <54 <54 <54 62  69  70  74  78  81  83
129 117 100 96  91  84  71  68  68  66  66  66  <54 <54 <54 <54 64  70  71  75  79  82  84
130 117 101 96  92  85  72  69  69  66  66  66  <54 <54 <54 <54 65  71  72  77  79  83  85
133 118 102 97  93  86  72  69  69  67  66  66  <54 <54 <54 54  67  72  73  78  80  85  85
135 119 103 98  93  87  73  69  69  67  67  67  <54 54  54  58  69  73  74  79  80  85  86
135+    120 103 98  94  88  74  70  70  68  67  67  54  55  58  62  70  74  75  80  81  86  86
135+    122 104 99  95  88  75  73  72  68  68  68  58  62  62  63  71  76  76  81  82  86  87
135+    123 105 99  96  89  76  75  74  69  68  68  61  64  64  65  72  77  77  82  84  86  88
135+    124 106 100 98  89  78  76  75  70  69  69  63  65  65  67  73  78  79  83  85  87  89
135+    125 108 103 99  90  80  77  76  71  69  69  65  67  67  69  74  79  80  84  85  89  90
135+    126 109 105 100 91  82  77  76  71  70  70  67  69  69  70  75  80  82  85  86  90  91
135+    127 110 106 101 93  84  78  77  72  71  71  68  70  70  71  76  83  83  86  86  91  92
135+    128 112 108 102 94  85  79  78  72  71  71  70  71  71  72  77  85  85  87  87  92  93
135+    129 115 110 103 95  90  80  79  73  72  72  71  72  72  73  78  86  86  88  89  93  94
135+    130 120 112 104 96  92  83  80  73  72  72  72  73  73  74  79  87  88  90  90  94  95
135+    131 124 114 105 97  94  85  82  74  73  73  73  74  74  75  80  88  90  90  91  95  96
135+    132 125 115 106 98  95  90  84  75  74  73  74  75  75  76  82  89  91  91  91  96  98
135+    134 126 120 108 99  96  91  85  80  74  73  75  76  76  77  83  90  92  92  92  97  99
135+    135 128 122 110 100 98  93  86  82  75  74  76  77  77  78  85  91  93  93  93  98  100
135+    135+    130 124 115 103 99  94  87  84  76  74  78  79  79  79  86  93  95  95  95  99  101
135+    135+    135 125 116 105 100 95  89  85  78  75  80  80  80  81  87  94  97  97  97  100 102
135+    135+    135+    126 118 106 102 96  90  90  79  78  81  82  82  84  88  96  98  98  98  101 103
135+    135+    135+    128 119 108 104 98  92  92  80  80  82  85  85  86  90  98  99  100 100 102 104
135+    135+    135+    130 120 110 105 99  94  94  85  85  83  86  87  88  92  100 100 101 101 103 105
135+    135+    135+    132 123 112 106 100 95  95  90  88  86  88  89  90  94  101 102 102 102 104 107
135+    135+    135+    133 125 114 107 103 98  98  95  90  88  90  91  92  96  102 103 103 103 106 109
135+    135+    135+    134 130 115 108 105 100 100 98  95  91  91  93  95  98  104 105 105 106 107 110
135+    135+    135+    135 132 120 110 110 105 103 100 96  94  94  95  97  100 106 108 108 108 109 112
135+    135+    135+    135+    134 125 115 115 103 105 103 98  97  97  98  100 102 108 110 110 110 110 114
135+    135+    135+    135+    135 124 120 120 110 108 105 100 100 100 100 101 105 110 112 112 112 112 116
135+    135+    135+    135+    135+    130 125 122 113 110 108 105 102 102 102 103 108 112 113 113 113 114 117
135+    135+    135+    135+    135+    135 130 124 115 115 110 110 106 106 106 107 110 114 115 115 116 117 118
135+    135+    135+    135+    135+    135+        125 120 120 115 115 108 108 108 109 113 118 118 119 119 119 120
135+    135+    135+    135+    135+    135+    135 130 125 125 120 120 114 114 114 115 116 120 120 121 121 121 123
135+    135+    135+    135+    135+    135+    135+    135 130 130 125 125 116 116 116 117 119 124 124 124 125 125 127
135+    135+    135+    135+    135+    135+    135+    135+    135 135 130 130 122 122 122 123 123 127 127 128 130 130 132
135+    135+    135+    135+    135+    135+    135+    135+    135+    135+    133 133 128 128 128 128 129 129 132 132 133 133 133
135+    135+    135+    135+    135+    135+    135+    135+    135+    135+    135 135 135+    135+    135+    135+    135+    135+    135+    135+    135+    135+    135+
";

$arr = explode("\n",$str);
$arr = array_filter($arr);
$arr = array_values($arr);
foreach($arr as &$val){
    $arr2 = explode(" ",$val);
    $arr2 = array_filter($arr2);
    $arr2 = array_values($arr2);
    $val = $arr2;
}

第二步,因为横坐标是有区间的40-44都算一个key,单独要写一下这部分逻辑

if($age <= 5.5){
        $age_key=0;
    }elseif($age <= 6.5){
        $age_key=1;
    }elseif($age <= 7.5){
        $age_key=2;
    }elseif($age <= 8.5){
        $age_key=3;
    }elseif($age <= 9.5){
        $age_key=4;
    }elseif($age <= 10.5){
        $age_key=5;
    }elseif($age <= 11.5){
        $age_key=6;
    }elseif($age <= 12.5){
        $age_key=7;
    }elseif($age <= 13.5){
        $age_key=8;
    }elseif($age <= 14.5){
        $age_key=9;
    }elseif($age <= 15.5){
        $age_key=10;
    }elseif($age <= 16.5){
        $age_key=11;
    }elseif($age <= 17.5){
        $age_key=12;
    }elseif($age <= 18.5){
        $age_key=13;
    }elseif($age > 18.5 &&$age <= 24){
        $age_key=14;
    }elseif($age >= 25 &&$age <= 29){
        $age_key=15;
    }elseif($age >= 30 &&$age <= 34){
        $age_key=16;
    }elseif($age >= 35 &&$age <= 39){
        $age_key=17;
    }elseif($age >= 40 &&$age <= 44){
        $age_key=18;
    }elseif($age >= 45 &&$age <= 49){
        $age_key=19;
    }elseif($age >= 50 &&$age <= 54){
        $age_key=20;
    }elseif($age >= 55 &&$age <= 59){
        $age_key=21;
    }else{
        //if($age >= 60 &&$age <= 64)
        $age_key=22;
    }

最后测试和检查一下,score是有可能大于72的,key越界,所以限制一下

 $score > 72 ? $score=72:"";

最终版本

private function getZhishang($score,$age){
    $str = "54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
56  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
58  60  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
60  60  58  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
62  62  60  58  55  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
65  64  62  60  58  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
68  65  64  63  60  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
70  66  65  65  62  56  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
73  67  66  66  64  58  56  55  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
75  68  68  68  65  60  58  56  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
80  69  69  69  66  61  60  58  55  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
85  70  70  70  66  62  61  59  56  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <62
90  75  75  73  67  63  61  60  57  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 62
92  80  80  75  67  64  62  60  58  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 65
95  85  85  76  68  65  62  61  59  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 54  67
98  88  86  77  68  66  63  61  60  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 58  68
100 90  86  78  69  68  64  62  60  55  <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 <54 64  69
102 92  87  78  70  70  64  62  61  55  54  <54 <54 <54 <54 <54 <54 <54 <54 <54 54  66  70
104 94  87  79  71  71  65  62  62  56  55  <54 <54 <54 <54 <54 <54 <54 <54 <54 58  67  70
105 95  88  80  72  71  65  63  62  56  55  54  <54 <54 <54 <54 <54 <54 <54 <54 64  69  71
106 97  89  82  73  72  65  63  63  56  56  55  <54 <54 <54 <54 <54 <54 <54 54  65  70  71
108 99  90  84  74  72  66  64  64  57  56  56  <54 <54 <54 <54 <54 <54 <54 58  67  71  72
109 100 91  85  75  73  66  64  64  57  57  57  <54 <54 <54 <54 <54 <54 <54 62  68  72  73
110 103 92  86  78  73  66  65  65  58  58  58  <54 <54 <54 <54 <54 <54 <54 64  69  73  74
112 105 93  86  80  74  67  66  65  59  59  59  <54 <54 <54 <54 <54 <54 <54 65  70  73  75
115 106 93  87  81  74  67  66  65  60  60  60  <54 <54 <54 <54 <54 <54 54  67  71  74  76
116 108 94  88  82  75  67  66  66  61  60  61  <54 <54 <54 <54 <54 <54 58  68  72  75  77
118 110 95  89  83  76  68  66  66  62  61  62  <54 <54 <54 <54 <54 <54 62  69  73  76  78
120 111 95  90  83  78  68  67  66  62  62  62  <54 <54 <54 <54 <54 54  64  70  74  77  79
123 112 96  91  84  80  68  67  67  63  63  63  <54 <54 <54 <54 <54 58  65  70  75  77  80
125 113 97  92  85  81  69  67  67  63  64  64  <54 <54 <54 <54 <54 62  67  71  76  78  81
126 114 98  93  86  82  69  67  67  64  64  64  <54 <54 <54 <54 54  64  68  72  77  79  81
127 115 98  94  88  83  70  68  68  65  65  65  <54 <54 <54 <54 58  67  69  73  77  80  82
128 116 99  95  90  83  71  68  68  65  65  65  <54 <54 <54 <54 62  69  70  74  78  81  83
129 117 100 96  91  84  71  68  68  66  66  66  <54 <54 <54 <54 64  70  71  75  79  82  84
130 117 101 96  92  85  72  69  69  66  66  66  <54 <54 <54 <54 65  71  72  77  79  83  85
133 118 102 97  93  86  72  69  69  67  66  66  <54 <54 <54 54  67  72  73  78  80  85  85
135 119 103 98  93  87  73  69  69  67  67  67  <54 54  54  58  69  73  74  79  80  85  86
135+    120 103 98  94  88  74  70  70  68  67  67  54  55  58  62  70  74  75  80  81  86  86
135+    122 104 99  95  88  75  73  72  68  68  68  58  62  62  63  71  76  76  81  82  86  87
135+    123 105 99  96  89  76  75  74  69  68  68  61  64  64  65  72  77  77  82  84  86  88
135+    124 106 100 98  89  78  76  75  70  69  69  63  65  65  67  73  78  79  83  85  87  89
135+    125 108 103 99  90  80  77  76  71  69  69  65  67  67  69  74  79  80  84  85  89  90
135+    126 109 105 100 91  82  77  76  71  70  70  67  69  69  70  75  80  82  85  86  90  91
135+    127 110 106 101 93  84  78  77  72  71  71  68  70  70  71  76  83  83  86  86  91  92
135+    128 112 108 102 94  85  79  78  72  71  71  70  71  71  72  77  85  85  87  87  92  93
135+    129 115 110 103 95  90  80  79  73  72  72  71  72  72  73  78  86  86  88  89  93  94
135+    130 120 112 104 96  92  83  80  73  72  72  72  73  73  74  79  87  88  90  90  94  95
135+    131 124 114 105 97  94  85  82  74  73  73  73  74  74  75  80  88  90  90  91  95  96
135+    132 125 115 106 98  95  90  84  75  74  73  74  75  75  76  82  89  91  91  91  96  98
135+    134 126 120 108 99  96  91  85  80  74  73  75  76  76  77  83  90  92  92  92  97  99
135+    135 128 122 110 100 98  93  86  82  75  74  76  77  77  78  85  91  93  93  93  98  100
135+    135+    130 124 115 103 99  94  87  84  76  74  78  79  79  79  86  93  95  95  95  99  101
135+    135+    135 125 116 105 100 95  89  85  78  75  80  80  80  81  87  94  97  97  97  100 102
135+    135+    135+    126 118 106 102 96  90  90  79  78  81  82  82  84  88  96  98  98  98  101 103
135+    135+    135+    128 119 108 104 98  92  92  80  80  82  85  85  86  90  98  99  100 100 102 104
135+    135+    135+    130 120 110 105 99  94  94  85  85  83  86  87  88  92  100 100 101 101 103 105
135+    135+    135+    132 123 112 106 100 95  95  90  88  86  88  89  90  94  101 102 102 102 104 107
135+    135+    135+    133 125 114 107 103 98  98  95  90  88  90  91  92  96  102 103 103 103 106 109
135+    135+    135+    134 130 115 108 105 100 100 98  95  91  91  93  95  98  104 105 105 106 107 110
135+    135+    135+    135 132 120 110 110 105 103 100 96  94  94  95  97  100 106 108 108 108 109 112
135+    135+    135+    135+    134 125 115 115 103 105 103 98  97  97  98  100 102 108 110 110 110 110 114
135+    135+    135+    135+    135 124 120 120 110 108 105 100 100 100 100 101 105 110 112 112 112 112 116
135+    135+    135+    135+    135+    130 125 122 113 110 108 105 102 102 102 103 108 112 113 113 113 114 117
135+    135+    135+    135+    135+    135 130 124 115 115 110 110 106 106 106 107 110 114 115 115 116 117 118
135+    135+    135+    135+    135+    135+        125 120 120 115 115 108 108 108 109 113 118 118 119 119 119 120
135+    135+    135+    135+    135+    135+    135 130 125 125 120 120 114 114 114 115 116 120 120 121 121 121 123
135+    135+    135+    135+    135+    135+    135+    135 130 130 125 125 116 116 116 117 119 124 124 124 125 125 127
135+    135+    135+    135+    135+    135+    135+    135+    135 135 130 130 122 122 122 123 123 127 127 128 130 130 132
135+    135+    135+    135+    135+    135+    135+    135+    135+    135+    133 133 128 128 128 128 129 129 132 132 133 133 133
135+    135+    135+    135+    135+    135+    135+    135+    135+    135+    135 135 135+    135+    135+    135+    135+    135+    135+    135+    135+    135+    135+
";

$arr = explode("\n",$str);
$arr = array_filter($arr);
$arr = array_values($arr);
foreach($arr as &$val){
    $arr2 = explode(" ",$val);
    $arr2 = array_filter($arr2);
    $arr2 = array_values($arr2);
    $val = $arr2;
}
    if($age <= 5.5){
        $age_key=0;
    }elseif($age <= 6.5){
        $age_key=1;
    }elseif($age <= 7.5){
        $age_key=2;
    }elseif($age <= 8.5){
        $age_key=3;
    }elseif($age <= 9.5){
        $age_key=4;
    }elseif($age <= 10.5){
        $age_key=5;
    }elseif($age <= 11.5){
        $age_key=6;
    }elseif($age <= 12.5){
        $age_key=7;
    }elseif($age <= 13.5){
        $age_key=8;
    }elseif($age <= 14.5){
        $age_key=9;
    }elseif($age <= 15.5){
        $age_key=10;
    }elseif($age <= 16.5){
        $age_key=11;
    }elseif($age <= 17.5){
        $age_key=12;
    }elseif($age <= 18.5){
        $age_key=13;
    }elseif($age > 18.5 &&$age <= 24){
        $age_key=14;
    }elseif($age >= 25 &&$age <= 29){
        $age_key=15;
    }elseif($age >= 30 &&$age <= 34){
        $age_key=16;
    }elseif($age >= 35 &&$age <= 39){
        $age_key=17;
    }elseif($age >= 40 &&$age <= 44){
        $age_key=18;
    }elseif($age >= 45 &&$age <= 49){
        $age_key=19;
    }elseif($age >= 50 &&$age <= 54){
        $age_key=20;
    }elseif($age >= 55 &&$age <= 59){
        $age_key=21;
    }else{
        //if($age >= 60 &&$age <= 64)
        $age_key=22;
    }
    
    $score > 72 ? $score=72:"";
    return $arr[$score-1][$age_key];
 }

最终运行结果

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表