仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2486|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之静态网页手艺PHP的数组处置函数库

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:25:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
培训的第四阶段,就是应用PHP语言开发实际的程序。以结合实际的项目开发来进行学习,效果真的很好,在学习完之后就开始练习,能比较容易掌握所学的知识,这是学校的学习所没法比的。   array :  创立一个新的数组。  
array_walk :  让用户自订函数能处置数组中的每个元素。  
arsort :  将数组的值由大到小排序。  
asort :  将数组的值由小到大排序。  
count :  盘算变量或数组中的元素个数。  
current :  前往数组中今朝的元素。  
each :  前往数组中下一个元素的索引及值。  
end :  将数组的外部指针指到最初的元素。  
key :  获得数组中的索引材料。  
ksort :  将数组的元素依索引排序。  
list :  列出数组中元素的值。  
next :  将数组的外部指针向后挪动。  
pos :  前往数组今朝的元素。  
prev :  将数组的外部指针往前挪动。  
range :  创立一个整数局限的数组。  
reset :  将数组的指针指到数组第一个元素。  
rsort :  将数组的值由大到小排序。  
shuffle :  将数组的按次弄混。  
sizeof :  获知数组的巨细。  
sort :  将数组排序。  
uasort :  将数组依用户自定的函数排序。  
uksort :  将数组的索引依用户自定的函数排序。  
usort :  将数组的值依用户自定的函数排序。  
array
创立一个新的数组。
语法: array array(...);
前往值:数组
函数品种: 材料处置
内容申明: 前往的参数是数组类型。参数可所以带有 => 运算子的索引。array() 其实不是一个正轨的函数,它次要是要用来暗示数组。
利用典范 : 上面典范用显示若何创立一个二维数组,若何指定结合数组的键值,及若何略过和持续数组中的数字索引。
$fruits = array(
"fruits" => array("a"=>"orange","b"=>"banana","c"=>"apple"),
"numbers" => array(1, 2, 3, 4, 5, 6),
"holes" => array("first", 5 => "second", "third")
);
参考 list()
array_walk
让利用者自订函数能处置数组中的每个元素。
语法: int array_walk(array arr, string func);
前往值: 整数
函数品种: 材料处置
内容申明 此函数使每一个数组元素 arr 依序与函数称号 func 绝对应。元素传送到函数 func 的第一个参数,若参数超越一个,则每次城市有正告信息。要处置正告信息,可在本函数后面加上 '@' 字符 (酿成 @array_walk);或是利用 error_reporting 函数。
注重: 利用者自订函数 func 真的会将数组元素 arr 依序代入,所以任何对元素所做的改动城市影响到数组自己。
利用典范
<?
$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
function test_alter( $item1 ) {
$item1 = 'bogus';
}function test_print( $item2 ) {
echo "$item2<br>\n";
}array_walk( $fruits, 'test_print' );
array_walk( $fruits, 'test_alter' );
array_walk( $fruits, 'test_print' );
?>
参考 each() list()
arsort
将数组的值由大到小排序。
语法: void arsort(array array);
前往值: 无
函数品种:材料处置内容申明这个函数将数组的值从头排序,由大至小分列。数组的索引亦随着值的按次而变化。当您在法式中需求从头收拾整顿数组值的按次时,就能够利用这个函数。
利用典范
底下的典范前往的了局为
fruits[a] = orange
fruits[d] = lemon
fruits[b] = banana
fruits[c] = apple。
咱们可以看到生果名 (数组值) 已按英文字母的按次由 z 往 a 从头排序,而索引亦随着值变化。
<?
$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
arsort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."\n";
}
?>
参考 asort() rsort() ksort() sort()
asort
将数组的值由小到大排序。
语法: void asort(array array);
前往值: 无
函数品种: 材料处置
内容申明 这个函数将数组的值从头排序,由小至大分列。数组的索引亦随着值的按次而变化。当您在法式中需求从头收拾整顿数组值的按次时,就能够利用这个函数。
利用典范
底下的典范前往的了局为
fruits[c] = apple
fruits[b] = banana
fruits[d] = lemon
fruits[a] = orange
咱们可以看到生果名 (数组值) 已按英
文字母的按次由 a 往 z 排序,而索引亦随着值变化。
<?
$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
asort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."\n";
}
?>

参考 arsort() rsort() ksort() sort()
count
盘算变量或数组中的元素个数。
语法: int count(mixed var);
前往值: 整数
函数品种: 材料处置
内容申明 这个函数用来盘算数组的元素个数 (亦可将变量代入,只不外前往的整数将是 1)。变量还没有设置装备摆设时,前往值为 0。变量若不是数组,前往值为 1。
参考 sizeof() isset() is_array()
current
前往数组中今朝的元素。
语法: mixed current(array array);
前往值: 夹杂类型材料
函数品种: 材料处置
内容申明 申明: 每个数组变量都有一个外部指针,指到它的每个元素。另外,为了交互参考,数组有份一切元素的双向链结表。数组的外部指针指到本来拔出的元素上,直到法式履行到有修改数组指针的函数。函数 current() 复杂地前往数组元素中今朝指到的数组外部指针。它不会改动指针的值,若数组指针指到外部指针表外,则前往 false 的值。
注重: 若数组中包括空的元素 (0 或 "" 空字符串),则本函数会前往 false 值。如果今朝元素是个零值的空元素或是超越数组指针,了局固然是不决的 false 值。碰到这类情况,可使用 each() 函数会更合适。
参考 end() next() prev() reset()
each
前往数组中下一个元素的索引及值。
语法: array each(array array);
前往值: 数组
函数品种: 材料处置
内容申明 前往数组为今朝数组指针的 索引/值 对。前往的数组有四个元素,依序为 0, 1, 索引, 及值。前述的 0 与 索引 为数组的索引,1 与 值则为数组元素的值。
利用典范
典范一:
<?
$foo = array( "bob", "fred", "jussi", "jouni" );
$bar = each( $foo );
?>
下面的例子,前往数组 $bar 的 索引/值 为
0 => 0
1 => 'bob'
key => 0
value => 'bob'
典范二:
<?
$foo = array( "robert" => "bob", "seppo" => "sepi" );
$bar = each( $foo );
?>
这个的例子,前往数组 $bar 的 索引/值 为
0 => 'robert'
1 => 'bob'
key => 'robert'
value => 'bob'
典范三:
each() 函数最典范的例子是拿来与 list() 函数适用,以下例的 $http_post_vars 变量。
<?
echo "post 所送出的值为:<br>";
while ( list( $key, $val ) = each( $http_post_vars ) ) {
echo "$key => $val<br>";
}
?>
参考 current() key() list() next() prev() reset()
end
将数组的外部指针指到最初的元素。
语法: end(array array);
前往值: 无
函数品种: 材料处置
内容申明 本函数会改动数组的外部指针,它将指针指到最初一个元素上。
参考 current() each() next() reset()
key
获得数组中的索引材料。
语法: mixed key(array array);
前往值: 夹杂类型材料
函数品种: 材料处置
内容申明
本函数从今朝数组的指针,前往其索引
参考 current() next()
ksort
将数组的元素依索引排序。
语法: void ksort(array array);
前往值: 无
函数品种: 材料处置
内容申明
本函数将数组中的元素依索引排序,排序后的索引和值依然对应
利用典范
<?
$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
ksort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."\n";
}
?>
下面的例子,前往的材料为
fruits[a] = orange
fruits[b] = banana
fruits[c] = apple
fruits[d] = lemon

参考 arsort() asort() sort() rsort()
list
列出数组中元素的值。
语法: void list(...);
前往值: 无
函数品种: 材料处置
内容申明 和 array 函数一样,不算是正轨的函数。list() 函数用在列出一切数组中的数值。
利用典范
上面的典范列出从 mysql 数据库前往的数组材料。
<table>
<tr>
<th>员工姓名</th>
<th>薪资</th>
</tr>
<?php
$result = mysql($conn, "select id, name, salary from employees");
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
print(" <tr>\n".
" <td><a href=\"info.php3?id=$id\">$name</a></td>\n".
" <td>$salary</td>\n".
" </tr>\n");
}
?></table>
参考 each() array()
next
将数组的外部指针向后挪动。
语法: mixed next(array array);
前往值: 夹杂类型材料
函数品种: 材料处置
内容申明 这个函数前往数组下个元素的外部指针,若没有下个元素,则前往 false 值。固然,若是一个空的数组,它也前往 false 值。要准确地处置多是空的数组,可使用 each() 函数。此函数看起来像 current() 函数,分歧中央在于本函数使指针往后指到下一个元素,并前往新的指针处的元素值,意即指针后移,并前往下一个元素值。
参考 current() end() prev() reset()
pos
前往数组今朝的元素。
语法: mixed pos(array array);
前往值: 夹杂类型材料
函数品种: 材料处置
内容申明
此函数其实就是 current() 函数。
参考
end() next() prev() reset()
数组处置函数库
prev
将数组的外部指针往前挪动。
语法: mixed prev(array array);
前往值: 夹杂类型材料
函数品种: 材料处置
内容申明 这个函数前往数组前一个元素的外部指针,若没有前一个元素,则前往 false 值。固然,若是一个空的数组,它也前往 false 值。要准确地处置多是空的数组,可使用 each() 函数。此函数有点像 next() 函数,只是 prev() 函数是将指针往前移,而 next() 函数是将指针往后移。
参考 current() end() next() reset()
range
创立一个整数局限的数组。
语法: array range(int low, int high);
前往值: 数组
函数品种: 材料处置
内容申明 此函数创立一个由小到大的一连整数数组。在 shuffle() 函数有利用典范
参考 shuffle()
reset
将数组的指针指到数组第一个元素。
语法: mixed reset(array array);
前往值: 夹杂类型材料
函数品种: 材料处置
内容申明 本函数将数组的指针重设,将指针改指到数组的第一个元素。前往值的内容也是数组的第一个元素。
利用典范
技能: kk@shonline.de 指出 (30-jul-1998),当数组的材料不敷不乱时,利用 reset() 会有正告信息。最常产生的时分是处置 html 表单(form)的输出材料时,若用户输出的材料不敷充份,或用户居心增删输出 (input) 字段,就有能够会有正告信息。用 @reset() 的体例可以使正告信息不呈现 (在 reset() 前加 @),不外这只是掩耳盗铃的体例;要斧底抽薪的办法是利用 if (isset()) 的体例 (拜见 4.48.14 isset() 函数),以下例
<?
if (isset($form_array)) {
reset($form_array);
while (list($k, $v) = each($form_array)) {
do_something($k, $v);
}
}
?>
参考 current() each() next() prev()
rsort
将数组的值由大到小排序。
语法: void rsort(array array);
前往值: 无
函数品种: 材料处置
内容申明
本函数将数组依由大到小的体例重排。
利用典范
<?
$fruits = array("lemon","orange","banana","apple");
rsort($fruits);
for(reset($fruits); list($key,$value) = each($fruits); ) {
echo "fruits[$key] = ".$value."\n";
}
?>
处置后的了局为
fruits[0] = orange
fruits[1] = lemon
fruits[2] = banana
fruits[3] = apple
参考 arsort() asort() ksort() sort() usort()
shuffle
将数组的按次弄混。
语法: void shuffle(array array);
前往值: 无
函数品种: 材料处置
内容申明 本函数将数组以随机的体例使全体元素从头乱排。
利用典范
<?
$numbers = range(1,20);
srand(time());
shuffle($numbers);
while (list(,$number) = each($numbers)) {
echo "$number ";
}
?>
注重:
ccunning@math.ohio-state.edu 指出 (31-may-1999),在 solaris 上因为受了 libc 函数库的影响,会使本函数呈现成绩。今朝处理的体例以下面的例子。(注: 也许以后新的 php 版本会修改这个成绩。)
<?
function myshuffle($array) {
mt_srand((double) microtime()*1000000);
$num = count($array);
for ($i=0; $i<$num-1; $i++) {
$n = mt_rand($i+1,$num);
$temp = $array[$n];
$array[$n] = $array[$i];
$array[$i] = $temp;
}
}
$array = array(1,2,3,4,5,6,7,8,9,10);
myshuffle(&$array);
while (list(,$var)=each($array)) {
echo $var . " ";
}
?>
参考 arsort() asort() ksort() rsort() sort() usort()
sizeof
获知数组的巨细。
语法: int sizeof(array array);
前往值: 整数
函数品种: 材料处置
内容申明
本函数以整数类型前往数组的元素个数。
参考 count()
sort
将数组排序。
语法: void sort(array array);
前往值: 无
函数品种: 材料处置
内容申明 本函数将数组依由小到大的体例重排。
利用典范
<?
$fruits = array("lemon","orange","banana","apple");
sort($fruits);
for(reset($fruits); list($key,$value) = each($fruits); ) {
echo "fruits[$key] = ".$value."\n";
}
?>
前往的了局为
fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

参考 arsort() asort() ksort() rsort() usort()
uasort
将数组依用户自定的函数排序。
语法: void uasort(array array, function cmp_function);
前往值: 无
函数品种: 材料处置
内容申明 本函数将数组依用户自定的体例重排,固然元素的索引和值依然坚持对应的关系。当您感觉需求自行设计排序的体例时,可以先自订处置函数,再利用本函数将数组值排序。
参考 arsort() asort() ksort() rsort() sort() uksort()
uksort
将数组的索引依用户自定的函数排序。
语法: void uksort(array array, function cmp_function);
前往值: 无
函数品种: 材料处置
内容申明 本函数将数组的索引依用户自定的体例重排,cmp_function 即用户自行开辟的函数。
利用典范
<?
function mycompare($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");
uksort($a, mycompare);
while(list($key, $value) = each($a)) {
echo "$key: $value\n";
}
?>
下面的法式前往材料为
20: twenty
10: ten
4: four
3: three
参考 arsort() asort() ksort() rsort() sort() uasort()
usort
将数组的值依用户自定的函数排序。
语法: void usort(array array, function cmp_function);
前往值: 无
函数品种: 材料处置
内容申明
本函数将数组的值依用户自定的体例重排。若法式中需求利用特别的排序体例,则可使用这个函数。
利用典范
<?
function cmp($a,$b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
$a = array(3,2,5,6,1);
usort($a, cmp);
while(list($key,$value) = each($a)) {
echo "$key: $value\n";
}
?>
此例的前往值为
0: 6
1: 5
2: 3
3: 2
4: 1
参考 arsort() asort() ksort() rsort() sort()
理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。
冷月葬花魂 该用户已被删除
沙发
发表于 2015-2-16 01:28:49 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
兰色精灵 该用户已被删除
板凳
发表于 2015-2-21 04:11:29 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
只想知道 该用户已被删除
地板
发表于 2015-2-28 10:54:06 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
再见西城 该用户已被删除
5#
发表于 2015-3-9 22:41:15 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
6#
发表于 2015-3-17 02:11:12 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
谁可相欹 该用户已被删除
7#
发表于 2015-3-17 04:10:03 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
分手快乐 该用户已被删除
8#
发表于 2015-3-18 00:38:35 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
透明 该用户已被删除
9#
发表于 2015-3-25 08:31:53 | 只看该作者
当然这种网站的会员费就几十块钱。
若天明 该用户已被删除
10#
发表于 2015-4-5 13:20:03 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
admin 该用户已被删除
11#
发表于 2015-4-6 09:04:07 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
愤怒的大鸟 该用户已被删除
12#
发表于 2015-4-15 01:19:11 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
飘灵儿 该用户已被删除
13#
发表于 2015-4-17 23:46:51 | 只看该作者
当然这种网站的会员费就几十块钱。
爱飞 该用户已被删除
14#
发表于 2015-4-21 20:13:07 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
蒙在股里 该用户已被删除
15#
发表于 2015-4-25 14:04:52 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
深爱那片海 该用户已被删除
16#
发表于 2015-4-26 03:10:18 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
金色的骷髅 该用户已被删除
17#
发表于 2015-5-9 06:25:42 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
小魔女 该用户已被删除
18#
发表于 2015-5-10 00:51:52 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
简单生活 该用户已被删除
19#
发表于 2015-6-28 19:26:09 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
第二个灵魂 该用户已被删除
20#
发表于 2015-7-16 03:45:38 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表