好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

php大数组文件 php大数据

很多站长朋友们都不太清楚php大数组文件,今天小编就来给大家整理php大数组文件,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php如何将一些数组放进一个大数组里面? 2、 php大数组怎么求交集 3、 php处理大文件文件 4、 PHP 文件数组问题 php如何将一些数组放进一个大数组里面?

当你循环产生哪些数组的时候

你就这样

$big_array[] = Array('date' => '2011-11-30','week' => '周三001');

......

这样就行了,这样就会自动在$big_array这个数组后面追加那些小数组。

php大数组怎么求交集

在PHP中求数组的交集,我们可以与PHP给我们提供的现成函数:array_intersect(),其用法格式为:

array array_intersect(array array1,array array2[,arrayN…])

根据上述的语法格式,我们来写一个例子:

1 <?php

2 $fruit1 = array("Apple","Banana","Orange");

3 $fruit2 = array("Pear","Apple","Grape");

4 $fruit3 = array("Watermelon","Orange","Apple");

5 $intersection = array_intersect($fruit1, $fruit2, $fruit3);

6 print_r($intersection);

7 // 输出结果:

8 // Array ( [0] => Apple )

9 ?>

本例子将返回在$fruit1数组中出现且在$fruit2和$fruit3中也出现的所有水果的名子。

使用array_intersect()函数时要注意:只有在两个元素相等且具有相同的数据类型时,array_intersect()函数才会认

为它们是相同的,否则不能进行交集计算。array_intersect()函数返回一个保留了键的数组,只由第一个数组中出现的且在其它数组中都出现的

值组成。

若要求关联数组的交集,请使用array_intersect_assoc()函数,给你个简单的例子:

1 <?php

2 $fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");

3 $fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");

4 $fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");

5 $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);

6 print_r($intersection);

7 // 输出:

8 // Array ( [red] => Apple )

9 ?>

array_intersect_assoc()函数语法格式如下:

array array_intersect_assoc(array array1,array array2[,arrayN…])

array_intersect_assoc()与array_intersect()基本相同,只不过他在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才返回到结果数组中。

php处理大文件文件

我前几天有一个面试,面试题就是有这样一道题。先把自己的思路说一下,因为信息量非常的大,所以我采用了分表,分成24张表,每个小时一张,虽然凌晨时刻的表可能很少数据,但这样sum字段的问题就容易解决了,我理解的sum字段是一个小时同一个用户在相同的环境的登陆次数。这样理解不知对否,请网友自行甄辨。然后我通过PHP中的fgets函数一行一行的数据取出,入表。实验了几万条数据是没有问题的,但是上亿条数据可能够呛。这一点也请网友注意,我也是新手。只是看到这里没有答案,给大家一个参考。废话不多,看流程:

日志文件(access.log)格式:

200 /alipeng.gif?zoneid=2bannerid=44clentid=6materialid=64redirect=http%3a%2f%2f;time=1384444800.832ip=127.0.0.1user_agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36utrace=a6dbdd2f6a37b946165b7ae98dcd4f79

502 /alipeng.gif?zoneid=2bannerid=44clentid=6materialid=64redirect=http%3a%2f%2f;time=1384444800.904ip=127.0.0.1user_agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36utrace=a6dbdd2f6a37b946165b7ae98dcd4f79

配置文件cfg.php:

    define(HOST,'localhost');//主机名

    define(USER,'root');//数据库账号

    define(PASS,'111111');//数据库密码

    define(DBNAME,'test');//所用的数据库

    define(CHARSET,'utf8');//使用的字符集

具体代码test.php:

<?php

header("content-type:text/html;charset=utf-8");

require './cfg.php';

    $link = mysql_connect(HOST,USER,PASS) or die('连接数据库失败');

//程序中自动建库和建表,这样一定程度上拖慢了程序的速度

//创建数据库

$crdb="create database if not exists ".DBNAME;

if(!mysql_query($crdb)){

die('创建数据库失败');

}

//链接数据库

    mysql_select_db(DBNAME) or die('选择数据库失败');

    mysql_set_charset(CHARSET);

//因为数据量很大我将数据按小时分表,分成24个表,每小时一个表,这样num字段的值也好做统计

//数据循环建表

for($i=0;$i<24;$i++){

if($i<10){

$tbhz='0'.$i;//如果前10张表,表后缀应该是00-09

}else{

$tbhz=$i;

}

$ctbsql="create table if not exists logininfo_{$tbhz}(

id int not null auto_increment primary key,

zoneid int not null default 0,

bannerid int not null default 0,

clentid int not null default 0,

materialid int not null default 0,

redirect char(200) not null default '',

time char(16) not null default '',

user_agent char(200) not null default '',

utrace char(32) not null default '',

sum int not null default 0

)TYPE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";

mysql_query($ctbsql);

}

//打开文件

$file=fopen("./access.log",'r') or die("打开文件失败");

//对文件内容进行循环,直到文件末尾才停止

while (!feof($file)){

//每次读取一行

$line = fgets($file,1024);

//状态是200的进行写入数据库操作

if(preg_match('/^200/',$line)){

$pinfo=parse_url($line);//url信息

$ext=$pinfo['query'];//取得传递的各个参数

$parray=explode('',$ext);//根据分解为数组

//因为分解为数组后并不是要的值,所以要对值进行一次截取,将等号及等号左边的都去掉

foreach($parray as $val){

$narray[]=ltrim(strstr($val,'='),'=');

}

$narray[8]=rtrim($narray[8],'_');

//截取时间的秒数

$getmun=substr($parray[5],5,10);

$time=date('Y-m-d H',$getmun);//将秒数转化为时间类型。

//得到表后缀

$tbhz=date('H',$getmun);

$sql="insert into logininfo_{$tbhz} values(null,'{$narray[0]}','{$narray[1]}','{$narray[2]}','{$narray[3]}','{$narray[4]}','{$time}','{$narray[7]}','{$narray[8]}',0)";

//echo $sql;

$res=mysql_query($sql);//执行插入

if(!$res || !mysql_affected_rows()>0){

die('写入数据库失败');

}

unset($narray);//循环一次将narray销毁,为下一次循环做准备

//var_dump(parse_url($line)['query']);

}

}

fclose($file);//关闭

//因为sum字段还是0,下面代码段需要处理sum字段的值

//24张表循环处理

for($i=0;$i<24;$i++){

if($i<10){

$tbhz='0'.$i;//如果前10张表,表后缀应该是00-09

}else{

$tbhz=$i;

}

//该sql语句是把同一个小时内,并且符合条件相等的登陆的总次数和需要的登陆信息查出,为下面修改sum做准备

$sql="SELECT COUNT('zoneid') AS sum,zoneid,bannerid,clentid,materialid,redirect,user_agent,utrace FROM logininfo_{$tbhz} GROUP BY zoneid,bannerid,clentid,materialid,redirect,user_agent,utrace";

//发送查询sql

$res=mysql_query($sql);

if($res  mysql_num_rows($res)>0){

while($row=mysql_fetch_assoc($res)){

//修改sum字段,即同一小时内的登陆次数

$upsql="update logininfo_{$tbhz} set sum='{$row['sum']}' where zoneid='{$row['zoneid']}' and bannerid='{$row['bannerid']}' and clentid='{$row['clentid']}' and materialid='{$row['materialid']}' and redirect='{$row['redirect']}' and user_agent='{$row['user_agent']}' and utrace='{$row['utrace']}'";

//发送修改sql,执行修改sum

$upres=mysql_query($upsql);

if(!$upres){

die('修改登陆sum失败');

}

}

}

}

echo '数据成功入表';

使用说明:

将配置文件cfg.php中的连接数据库账号、密码修改为自己本机的(默认新增的库名是test)

直接运行test1.php

PHP 文件数组问题

举个例子给你看你就明白了:

1.将数组写到tmp.php里面:

<?php

$a = array (1, 2, array ("a", "b", "c"));

$handle = fopen("./tmp.php", "w+");

fwrite($handle, '<?php'.chr(10).'$a='.var_export ($a,true).';'.chr(10).'?>');

?>

2.在要用到$a数组的页面里面包含tmp.php后,$a就可以直接用了。

<?php

require_once("./tmp.php");

print_r($a);

?>

关于php大数组文件的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php大数组文件 php大数据的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did166845
更新时间:2023-03-09   阅读:29次

上一篇: idea怎么创建php idea怎么创建项目

下一篇:smartqqphp的简单介绍

相关资讯

最新资料更新

  • 1.在自己的php页面中使用dedecms标签的代码示例
  • 2.详解DeDeCMS织梦手机版网站首页如何更新
  • 3.dedecms后台编辑文章时archives_do.php显示空白解决办法
  • 4.登录织梦后台提示用户名不存在的解决方法介绍
  • 5.织梦CMS提示DedeTag Engine Create File False错误的解决办法总结
  • 6.windowsxp下织梦后台如何安装
  • 7.织梦dedecms不能上传或者保存jpeg格式图片的解决方法
  • 8.dedecms导航判断当前选中样式的方法
  • 9.织梦(dedecms)导航条dropdown.js的改进(附演示demo)
  • 10.织梦Dedecms在循环列表中获取会员信息的方法
  • 11.详解织梦DedeCms的安全问题优化解决办法(安全设置)
  • 12.解决{dede:arclist keyword=动态获取关键词}
  • 13.织梦DedeCms的安全问题解决办法(安全设置)
  • 14.dedecms列表页缩略图大小控制的方法
  • 15.DEDECMS调用顶级栏目+顶级栏目ID的方法
  • 16.织梦Dedecms5.7整站调用购物车订单数量简单解决办法
  • 17.织梦dedecms的arclist循环中判断第一个li,则添加固定的css否则不加
  • 18.DEDE调用指定文章ID来调用特定文档
  • 19.织梦dedecms 忘记管理员后台密码的解决技巧
  • 20.去掉dedecms友情链接中的LI标签的方法

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]