不用数据库,用程序实现数据的统计:
 
数据样本:
人名/小时数
【张三】【3】
【李四】【2】
【王五】【5】
【张三】【1】

 
要求:将各人名下小时数相加,得出以下结果
张三:4小时
李四:2小时
王五:5小时
请问:
1. 请告知程序思路。
2. 是否用数组?
3. 最好能写一个简单范例,不要求机器上能通过,但要能看清楚思路。

解决方案 »

  1.   

    1.可以使用ini文件讀取並做修改
    2.
      1.ini
      [people]
      z3=3
      l4=2 
      w5=5 
      使用parse_ini_file函數將文件數據轉成數組,對數據的修改可以直接操作數組
    3. 
     $time_array = parse_ini_file("1.ini");
     foreach($time_array as $name => $time)
     {
       echo $name.":".$time
     }
      

  2.   

    我新手,自己写了段函数,用数组和正则处理。test.txt文件内容如下(【】被我改成了[],不知道为什么【】这两个符号我这正则查不到):
    人名/小时数
    [张三][3]
    [李四][2]
    [王五][5]
    [张三][1] test.php
    代码如下:<?php
    //读取test.txt文件,文件中每一行为数组中的一个值
    $arrs = file('test.txt');$data = array();
    foreach ($arrs as $arr){
            //正则,搜索在[]之间的值(包括[]符号),返回一个数组
    if( preg_match('#(\[.*\]).*(\[.*\])#',$arr,$t) ){
                    //除去[]符号
    $name = substr($t[1],1,-1);
    $time = substr($t[2],1,-1);
                    //如果改人名第一次出现,直接赋值
    if (empty($data[$name]))
    $data[$name] = $time;
                    //如果不是第一次出现,和以前的数据相加
    else $data[$name] +=$time;
    }
    }
    //打印结果,输出为:Array ( [张三] => 4 [李四] => 2 [王五] => 5 ) 
    print_r($data);
    ?>