php 二维数组排序实现程序
先来看array_multisort()函数
代码如下 | 复制代码 |
<?php |
本例中在排序后,第一个数组将变成 "10",100,100,11,"a"(被当作字符串以升序排列)。第二个数组将包含 1, 3, "2", 2, 1(被当作数字以降序排列)。
代码如下 | 复制代码 |
array(2) { |
上面的用现成的函数感觉不是很方便,下面我来推荐一个用户自定义的函数
代码如下 | 复制代码 |
function array_sort($arr,$keys,$type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k=>$v){ $keysvalue[$k] = $v[$keys]; } if($type == 'asc'){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k=>$v){ $new_array[$k] = $arr[$k]; } return $new_array; } |
测试(它可以对二维数组按照指定的键值进行排序,也可以指定升序或降序排序法(默认为升序),
用法示例:
代码如下 | 复制代码 |
$array = array( $ShoppingList = array_sort($array,'price'); |
冒泡法
代码如下 | 复制代码 |
function arraysort($data, $order = 'asc') { return $data; $data = array (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33, 1, 12, 34, 54, 66, 32 ); |
例1
代码如下 | 复制代码 |
function my_array_unique($array2D){ |
下面推荐一种非常不错的去除二维数组重复值函数
代码如下 | 复制代码 |
function a_array_unique($array)//写的比较好 |
使用方法也是当然简单的如
代码如下 | 复制代码 |
$array2D = array(‘first’=>array(‘title’=>’1111′,’date’=>’2222′),’second’=>array(‘title’=>’1111′,’date’=>’2222′),’third’=>array(‘title’=>’2222′,’date’=>’3333′)); |
调用方法
代码如下 | 复制代码 |
$as = a_array_unique($array2D); |
即可了。
在php中要伪造IP和来源是很方便的事情,我们只要不超过10行代码即可实现,下面我来介绍利用php中curl函数来操作。下面写个构造来路google.com代码
代码如下 | 复制代码 |
$ch = curl_init(); |
我们常用的获取ip来源的函数
代码如下 | 复制代码 |
function getClientIp() { |
得出的结果是我们为造的IP地址来源哦。
echo "<br>IP: " . getClientIp() . "";
echo "<br>referer: " . $_SERVER["HTTP_REFERER"];
得出结果是我们的IP地址:8.8.8.8 来路 baidu.com 成功了吧。
无限级分类主要就是数据库中表的存储,一个是父ID,一个是子ID通过他们来查询父级关系,然后出来我们想要的表结构:id字段为分类标识,name字段为分类名,father_id字段为所属父分类的id,path字段为分类路径(储存该分
类祖先的集合),isdir判断是否是目录(1为是,0为否)。
例1
代码如下 | 复制代码 |
//$count为分类等级 |
其中$this->sql对象为sql操作类对象,re_datas()函数返回查到的数组,sql_numrows()函数返回查询到的数目
调用方法:$sort_list = sort_list($sort_list,0,1);
实例上2
id 编号
fid 父分类编号
class_name 分类名
path 分类路径,以 id 为节点,组成类似 ,1,2,3,4, 这样的字符串
———————————————————————————-
可以假设有如下的数据
id fid class_name path
—————————————————-
1 0 分类1 , 1,
2 0 分类2 , 2,
3 1 分类1-1 , 1,3,
4 1 分类1-2 , 1,4,
5 2 分类2-1 , 2,5,
6 4 分类1-2-1 , 1,4,6,
—————————————————-
代码如下 | 复制代码 |
<?php $sql=”SELECT * FROM tree order by path”; $result=$nbs->Query($sql); while($rows=$nbs->fetch_array($result)){ if(substr_count($rows['path'],’,')>2){ for($i=0;$i<(substr_count($rows['path'],’,')-2);$i++) echo ‘ ‘; } echo $rows['class_name'].’<br>’; } ?> |
代码
代码如下 | 复制代码 |
$conn = mysql_connect ( 'localhost', 'root', 'root' ); /** |
PHP如何读文件
file_get_contents() 函数把整个文件读入一个字符串中。
例子
代码如下 | 复制代码 |
<?php |
输出:
This is a test file with test text.
在PHP打开了文件之后就需要对文件进行读取,一般是使用fgets()函数。
该函数可以从文件中每次读取一行内容,其不断读入数据,值到遇到本行的换行符,或者全文的结束符号EOF。
介于fgets()函数只能读取一行数据,所以若需要读取文件的所有数据,须使用循环语句来完成。比如:
示例:
代码如下:
代码如下 | 复制代码 |
<?php $fp = fopen("test.txt", "r"); while(! feof($fp)) { echo fgets($fp). "<br />"; } fclose($fp); ?> |
4.fgets(从文件指针中读取一行)
语法:
fgets(filepointer)
filepointer,要读取的文件指针。如果成功,从文件中读取一行并返回字符串,如果失败,返回 FALSE。
示例:
代码如下:
代码如下 | 复制代码 |
<?php $fp = fopen("test.txt", "r"); if($fp) { for($i=1;! feof($fp);$i++) { echo "行".$i." : ".fgets($fp). "<br />"; } } else { echo "打开文件失败"; } fclose($fp); ?> |
假设test.txt的内容为:
hello world
hello cnblogs
hello heihaozi
hello everyone
页面输出的结果为:
行1 : hello world
行2 : hello cnblogs
行3 : hello heihaozi
行4 : hello everyone
其中feof()函数是用来检测文件是否结束的。该函数唯一参数就是文件指针(即$fp对应打开的文件)。
当然,在PHP中还可以使用readfile()函数一次读取整个文件。该函数包括了打开文件、读取文件并输出到浏览器中和
关闭文件。比如:
代码如下 | 复制代码 |
|
3,PHP如何关闭文件
使用函数fclose()就可以将文件关闭。
二,PHP如何写数据到文件
与PHP读取文件一样,PHP写入文件也需要:打开文件、写入数据和关闭文件。打开和关闭文件的方法上面已经说明,
那PHP中写入数据到文件是怎样的呢。
使用fwrite()函数,比如fwrite(文件路径,写入内容):
代码如下 | 复制代码 |
<?php $bruce=fopen("http://www.111cn.net/","r"); if(!$bruce) { echo'文件不存在'; exit; } while (!feof($bruce)) { $rose=fgets($bruce); $james=fopen("index.htm","a"); fwrite($james,$rose); fclose($james); } fclose($bruce); ?> |
<a href="index.htm">将111cn.net的内容生成了本地文件</a>
了解了PHP的读写文件,就可以把最简单的数据存入文本保存了
相关文章
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
- 这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
- 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <?php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
- 下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07
- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了C#读取文件所有行到数组的方法,涉及C#针对文件及数组的相关操作技巧,需要的朋友可以参考下...2020-06-25
- 如何将下面的二维数组转为一维数组。复制代码 代码如下:$msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'name'=>'mary' ), array( 'id...2014-05-31
- 在php中为我们提供了一个函数var_export 他可以直接将php代码入到一个文件中哦。 代码如下 复制代码 var_export($times,true);后面不加tru...2016-11-25
- 本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码清单: 复制代码 代码如下: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'ema...2014-06-07
- 1.前言 昨天碰到一道关于如何解决有序数组的连接问题,这是一个很常见的问题。但是这里要考虑到代码的效率问题,因为要连接的数组都是有序的,这是一个非常重要的前提条件。2.简单但效率不高的算法 我首先想到的是使用...2013-10-04
- 今天小编就为大家分享一篇python 实现将Numpy数组保存为图像,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)
在工作中经常遇到C#数组、ArrayList、List、Dictionary存取数据,但是该选择哪种类型进行存储数据呢?很迷茫,今天小编抽空给大家整理下这方面的内容,需要的朋友参考下吧...2020-06-25- 这篇文章主要介绍了C#中List和数组之间转换的方法,涉及比较简单的转换技巧,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇javascript中去除数组重复元素的实现方法【实例】。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧...2016-04-16
- 下面小编就为大家带来一篇Perl与JS的对比分析(数组、哈希)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-29