不用数据库,用程序实现数据的统计:
数据样本:
人名/小时数
【张三】【3】
【李四】【2】
【王五】【5】
【张三】【1】
要求:将各人名下小时数相加,得出以下结果
张三:4小时
李四:2小时
王五:5小时
请问:
1. 请告知程序思路。
2. 是否用数组?
3. 最好能写一个简单范例,不要求机器上能通过,但要能看清楚思路。
数据样本:
人名/小时数
【张三】【3】
【李四】【2】
【王五】【5】
【张三】【1】
要求:将各人名下小时数相加,得出以下结果
张三:4小时
李四:2小时
王五:5小时
请问:
1. 请告知程序思路。
2. 是否用数组?
3. 最好能写一个简单范例,不要求机器上能通过,但要能看清楚思路。
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
}
人名/小时数
[张三][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);
?>