php Ajax分页简单应用实例
简单的mysql数据表结构
代码如下 | 复制代码 |
CREATE TABLE messages |
JavaScript 代码
这里是ajax前段利用jquery来处理
代码如下 | 复制代码 |
<script type="text/javascript" src="http://ajax.googleapis.com/ function loading_show() function loading_hide() function loadData(page) </script> |
load_data.php
这里是获取由ajax发送的数据然后经过php查询mysql返回信息
代码如下 | 复制代码 |
<?php //Some Code. Available in download script } |
代码如下 | 复制代码 |
$id = $row["id"]; $outputList .= '<h1>' . $firstname . '</h1><h2>' . $country . ' </h2><hr />'; |
效果
下面举了三个实现来介绍在php正则替换中变量的指定字符,有需要学习的机友可参考参考。
三种方法.
1.
代码如下 | 复制代码 |
<?php |
2.
代码如下 | 复制代码 |
<?php |
3.
代码如下 | 复制代码 |
<?php $str = '(银子)'; $txt = '我的呢称(银子)'; echo preg_replace("/(Q$strE)/","<span style='color:#f00;'>$1</span>",$txt); ?> |
三种方法都返回同样结果.. PHP中的Perl风格正则与Perl完全一样.连quotemeta也是通用的..
一些其它关于正则的实例
例子:
代码如下 | 复制代码 |
$text = “foobar123fooabcbar”; $text = preg_replace(“/foo(?=bar)/”, “***”, $text); |
//匹配bar前面的位置 ***bar123fooabcbar
代码如下 | 复制代码 |
$text = “foobar123fooabcbar”; $text = preg_replace(“/(?<=bar)123/”, “***”, $text); |
//匹配bar后面的位置 foo***123fooabcbar
代码如下 | 复制代码 |
$text = “foobar123fooabcbar”; $text = preg_replace(“/foo(?!bar)/”, “***”, $text); |
//匹配后面跟的不是bar的位置 foobar123***abcbar
代码如下 | 复制代码 |
$text = “foobar123fooabcbar”; $text = preg_replace(“/(?<!foo)bar/”, “***”, $text); |
//匹配前面不是foo的位置 foobar123fooabc***
在php中如果我想要对两个数组进行如并集、交集和差集操作,我们可直接使用php自带的函数来操作如array_merge(),array_intersect(),array_diff().//计算数组的合并 array_merge与“+”的区别
array_merge() 函数把两个或多个数组合并为一个数组。
如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则键名会以连续方式重新索引。
注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。(参见例子 2)
代码如下 | 复制代码 |
$a = array(1 => 'a', 'b', 'c'); |
要合并的两个数组中有相同的字符串键的时候,使用array_merge()会覆盖掉原来的值,
而使用“+”合并数组则会和用“+”号合并数组相同数字键一样把最先出现的值作为最终结果返回,如下例:
代码如下 | 复制代码 |
$a2 = array('str' => 'a', 'b', 'c'); 结果依次为: Array |
注:如果想用array_merge合并两个数组,返回结果可能还会有相同的元素,这时候可以用array_unique()把相同的元素去掉
//计算数组的交集
array_intersect() 函数返回两个或多个数组的交集数组。
结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变。
注释:仅有值用于比较。
代码如下 | 复制代码 |
$a = array('jpg','png','gif','bmp'); $b = array('JPG','txt','docx','bmp'); $intersection = array_intersect($a, $b); |
还可以通过函数,获取自己想要的(比如元素不区分大小写)
代码如下 | 复制代码 |
$intersection2 = array_intersect(array_map('strtolower',$a), array_map('strtolower',$b)); |
结果依次为:
代码如下 | 复制代码 |
Array ( [3] => bmp ) Array ( [0] => jpg [3] => bmp ) |
//计算数组的差集
代码如下 | 复制代码 |
$old = array('jpg','png','gif','bmp'); |
注:返回结果的元素包含$old的元素,不包括$new的元素
print_r($difference);
结果为:
代码如下 | 复制代码 |
Array ( [0] => jpg [1] => png [2] => gif ) |
也可以用函数先进行处理,再计算差集
array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。
在返回的数组中,键名保持不变。
语法
array_diff(array1,array2,array3...)
代码如下 | 复制代码 |
$difference = array_diff(array_map('strtolower',$old), array_map('strtolower',$new)); |
一维数组
第一组 :sort 和 rsort ,按照PHP数组键值的顺序asc和逆序desc进行排序,同时破坏原来数组的索引关系——其实是删除索引之后重新建立从0开始的数字索引。看一下例程:
代码如下 | 复制代码 |
<?php $a = array("a"=>1,2); sort($a); var_dump($a); rsort($a); var_dump($a); ?> 看一下第一个输出结果,第一个输出: array(2) { [0]=> int(1) [1]=> int(2) } 第二个输出: array(2) { [0]=> int(5) [1]=> int(4) } |
发现没有我们原来定义的索引a哪里去了?哪里去了?可以肯定的说是被他们无情的删除了,你要是对原来的索引关系并不在意的话,可以使用他们!
第二组函数:asort 和 arsort ,这两个函数就比较厉害一点了,只要他们可以保留数组原有的索引关系,把上例的sort 和 rsort 分别用这两个函数替换一下,看运行结果:
代码如下 | 复制代码 |
array(2) { ["a"]=> int(1) [0]=> int(2) } array(2) { [0]=> int(2) ["a"]=> int(1) } |
这个一看就明白的,不用说了吧!
第三组PHP数组排序函数:krsort 和 ksort 这两个不同于以上两组,这两函数是对键名进行排序的,大家可以把上例的函数替换成这两个,看看具体运行结果,这里也不说了,不然这个文章写的就太长了,怕有些兄弟没有耐心看到本文的重点,虽然重点就在下边!
通过自定义函数对PHP数组进行排序,有三个函数分别是:
uasort 通过自定义函数对PHP数组的键值进行排序,并且保留原来的索引关系。
uksort 通过自定义函数对PHP数组的键名进行排序,并且保留原来的索引关系。
usort通过自定义函数对PHP数组的键值进行排序,并且删除原来的索引关系,从零开始建立新的索引。
这个地方当然需要一个例子:
代码如下 | 复制代码 |
<!--p //首先顶一个函数,这个函数需要接受两个参数,并且返回值是一定的 //第一个参数等于第二个参数的时候返回0,小于的时候返回-1,大于返回1 function cmp($a,$b){ $a+=1; $b+=3;//改变这些值之后进行比较 if($a==$b) return 0; return ($a<$b)?-1:1; } $a =array(1,4,3,5); uasort($a,'cmp'); var_dump($a); --> 输出结果: array(4) { [0]=> int(1) [3]=> int(5) [1]=> int(4) [2]=> int(3) } |
,
多维数组的排序
例如array_multisort($a,$b),$a,$b是两个数组,如果排序之后,$a数组的第3个元素被排到了第一位,那么$b的第三个元素不管他在$b中的大小都会排在第一位。看看下边的程序运行结果:
代码如下 | 复制代码 |
<?php |
很显然本来是数组b第五个元素的z被排到了第一位!
其实说明白了就是,array_multisort()先把第一个数组按照键值的大小排序,然后其它数组都按照第一个数组的调整策略进行调整——第三个元素放到第一位,第二个元素放到第二位……——其实这个多维数组排序算法的最基本体现!
不过需要注意的是:两个数组的元素个数必须相同,不然就会出现一个警告信息:
Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent in ……
好了,希望上边的大家也能用上,咱们还是说主要的吧:array_multisort()对多维数组进行排序,这个功能将来做项目的时候是非常有用的!
首先我们看看对多维数组的每一元素[数组]进行排序的操作方法,很简单,但是有几个参数需要说明一下,如果您对sql有所了解一看估计就明白了:
代码如下 | 复制代码 |
<?php //让我们来构造一个多维数组 $a=array(100,2,4,7,7); $b=array('ab','ac','ad','ag','ap'); $ab = array($a,$b); //开始排序 array_multisort($ab[0],SORT_NUMERIC,SORT_DESC,$ab[1],SORT_STRING,SORT_ASC); print_r($ab); ?> |
说明一下:首先我们用SORT_NUMERIC来声明对$ab[0]用数字类型排序,用SORT_DESC
声明顺序是逆序(从大到小),然后我们对$ab[1]用字符串类型排序,顺序是升序(顺序)
最后数组$ab的排序结果是两者的结合,先按$ab[0]的逆序,如果$ab[0]中存在大小相同的数值则按照$ab[1]的顺序排列,输出结果如下:
Array (
[0] => Array ( [0] => 100 [1] => 7 [2] => 7 [3] => 4 [4] => 2 )
[1] => Array ( [0] => ab [1] => ag [2] => ap [3] => ad [4] => ac )
)
是不是很像在数据库中用order by?其实真的差不多!
现在我们再看一个更加贴近实际应用的例子:
代码如下 | 复制代码 |
<?php $array[] = array("age"=>20,"name"=>"li"); $array[] = array("age"=>21,"name"=>"ai"); $array[] = array("age"=>20,"name"=>"ci"); $array[] = array("age"=>22,"name"=>"di"); foreach ($array as $key=>$value){ $age[$key] = $value['age']; $name[$key] = $value['name']; } array_multisort($age,SORT_NUMERIC,SORT_DESC,$name,SORT_STRING,SORT_ASC,$array); print_r($array); ?> |
这个例子的$array[]数组,是按照数据库中读出的记录来构造的,我们现在对他们按照年龄从大到小的顺序排列,如果年龄相同就按照名字的顺序排序。这样的排序才是我们将来会经常用的到的,
因为array_multisort()需要的排序参数必须是一个列,所以我们用foreach把这个数组的年龄和姓名读出来,之后呢?
就像上边的例子一样,进行排序,最后一个参数$array想必大家也看见了,是的这里需要声明对哪个数组进行排序,因为我们前边两个参数在形式上已经和需要排序的PHP数组没有关系了,虽然其实他们就是$array中的数据——我们从$array中抽取的列——排序当然是需要列,还没见过用行数据进行排序的呢!
输出结果如下——正如我们所想的:
代码如下 | 复制代码 |
Array ( [0] => Array ( [age] => 22 [name] => di ) [1] => Array ( [age] => 21 [name] => ai ) [2] => Array ( [age] => 20 [name] => ci ) [3] => Array ( [age] => 20 [name] => li ) ) |
看到了吧,其实也很简单,就是那几个需要大写的参数有点烦人而已!虽说也有点难以理解,但是理解了就好了,将来很有用的哦!
附录:
排序顺序标志:
SORT_ASC – 按照上升顺序排序
SORT_DESC – 按照下降顺序排序
排序类型标志:
SORT_REGULAR – 将项目按照通常方法比较
SORT_NUMERIC – 将项目按照数值比较
SORT_STRING – 将项目按照字符串比较
相关文章
- 我们这里介绍php与KindEditor编辑器使用时如何利用KindEditor编辑器的分页功能实现文章内容分页,KindEditor编辑器在我们点击分页时会插入代码,我们只要以它为分切符,就...2016-11-25
- 最近接了一个项目,其中有需求要用到jquery分页控件,上网也找到了需要分页控件,各种写法各种用法,都是很复杂,最终决定自己动手写一个jquery分页控件,全当是练练手了。写的不好,还请见谅,本分页控件在chrome测试过,其他的兼容性...2015-10-30
- 本文实例讲述了jquery实现的伪分页效果代码。分享给大家供大家参考,具体如下:这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期...2015-10-30
- Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.这篇文章主要介绍了vue.js 表格分页ajax 异步加载数据的相关资料,需要的朋友可以参考下...2016-10-20
Springboot如何使用mybatis实现拦截SQL分页
这篇文章主要介绍了Springboot使用mybatis实现拦截SQL分页,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-19- 在php中要实现分页比起asp中要简单很多了,我们核心就是直接获取当前页面然后判断每页多少再到数据库中利用limit就可以实现分页查询了,下面我来详细介绍分页类实现程序...2016-11-25
- 本文实例讲述了jquery实现的伪分页效果代码。分享给大家供大家参考,具体如下:这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期...2015-10-30
- 这篇文章主要为大家详细介绍了AngularJS实现分页显示数据库信息效果的相关资料,感兴趣的小伙伴们可以参考一下...2016-07-06
- 这篇文章主要介绍了基于jquery实现表格无刷新分页,功能实现了前端排序功能,增加了前端搜索功能,感兴趣的小伙伴们可以参考一下...2016-01-08
- 这篇文章主要为大家详细介绍了vue实现页面打印自动分页的两种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-29
- 这篇文章主要为大家详细介绍了vue.js表格分页示例,ajax异步加载数据...2016-10-20
- 这篇文章主要介绍了JS跨浏览器解析XML应用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-16
- 有时候我们从数据库获取的数据量太大,而我们不需要一次性显示那么多的时候,我们就要对数据进行分页处理了,让每页显示不同的数据。...2020-06-25
vivo X9如何查出后台偷跑流量应用?vivo X9查出后台偷跑流量应用的方法
vivo X9如何查看后台流量偷跑的情况?小编教你轻松查到!还不了解的小伙伴快来看看吧! 1)打开手机自带的【i管家】应用,打开后点击【流量监控】选项。(如下图) 2)接着选...2016-12-31- Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。本文我们来讲解Redis的应用场景实例。 C...2016-11-25
- 这篇文章主要为大家详细介绍了原生js实现分页效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-09-24
- 最近,在做测试开发平台的时候,需要对测试用例的列表进行后端分页,在实际去写代码和测试的过程中,发现这里面还是有些细节的,故想复盘一下...2021-09-29
- 这篇文章主要为大家详细分享了laypage分页控件使用实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-05-20
- ireport默认都是自动分页数据超出页面长度就会自动分到下一页,但有时候业务需要一页只显示固定几行这时候就需要自定义条数了。下面看具体操作吧...2021-10-26
PHP explode()函数的几个应用和implode()函数有什么区别
explode()函数介绍explode() 函数可以把字符串分割为数组。语法:explode(separator,string,limit)。 参数 描述 separator 必需。规定在哪里分割字符串。 string...2015-11-08