当前课程知识点:PHP程序设计 > PHP数组 > 数组相关函数 > 数组相关函数5
我们一上来就讲了关于数组指针八个函数
那么这八个函数我们说了前两个函数
一个是返回索引
一个是返回值
后面四个函数包括next的开始
一直到end结束
其实是向下移一位向上移一位
然后指向第一个指向最后一个
然后最后两个函数比较不一样一些
一个函数是返回当前的键和值的
就是你希望Key输出的时候
那么你需要用each这个函数
而且还可以把指针向前推进一位
list这个函数呢
是把数组中的一些值赋给一些变量
所以呢
我们利用数组指针遍历数组的时候
刚才说了让同学们练习的
这三个例子就在这个地方
首先我没有一个do...while语句
大家可以看一下do...while语句
一上来这个循环的执行体
它在做什么呢
这个函数是什么
还记得吗
赋的什么是把当前指针元素的值返回对吧
那么相当于把我们的$fruits是这个数组里面的值
就是我们的apple banana orange返回
然后while语句的这个条件是什么呢
是next
是不是我们往下移一位
那你想一开始的当前位置指针会指向哪
是不是第一个
然后我们next一下之后是不是指第二个了
然后在next一下指第三个
所以我们输出的结果就是apple banana orange
就是这样的这是一个遍历
那么第二种遍历用while去遍历的
那么在这个地方
我们用的each这个方法
刚才说了each这个方法是不是它就会
不但会返回value还会返回Key值好的
那我们把each frulis这个传递给那个$arr
这样的数组相当于把我们的什么
0apple 1banana 2orange
这样的内容逐一到保存在了
我们的这样一个数组里面
下面逐一的去输出
我们每一个$arr的Key值和value值
那么输出的就自然是0apple 1banana 2orange
就是这样子的一种形式对吧
遍历的那么第三个
第三个就是我说的list的用法
list非常的有意思
对吧它用的时候非常的有意思
就是它可以直接把我们的
数组里面的元素赋一个变量名
所以呢
它list里面的$Key和$value
是什么呢
其实就是变量名
你可以不叫这个的
你可以叫a和b
就是变量名
那么这个a b分别放什么呢
分别放的是each $frulist
刚才说了each
它做一件什么事
each它相当于一个人干两件事
对吧它做了什么第一返回键和值
然后在干什么把指针还有推向下一位
所以一个each首先指向了它的那个
Key值和value值 0和apple
那么在推进到下一位就是1和banana
然后再推向到
下一位2和orange就是这样的
然后分别把0 1 2存在$a里面
把apple banana orange存在b里面
那么我们echo输出的时候就会发现
其实输出的还是这样的内容
所以这个就是我们数组里面对吧
数组里面利用数组指针去做遍历
但同学们看完了之后
觉得
这不是还是遍历吗
我用foreach是不是可以达到同样的效果对吧
所以就是说这个部分
这个数组指针的部分同学们了解一下
知道有它那么
关于这些函数大体是个什么意思
也了解一下
在我们遇到的时候至少不害怕
但实际上遍历的时候
各位同学还是forrach去遍历的
那么看看有没有了解我们来一起做一第八题
现在抬头看一下屏幕
把抬头看下屏幕
我一共有六个echo来同学们
咱们不跑这个程序来告诉我每一个echo
最后输出的结果应该是什么
首先
第一个还是刚才的那个数组
apple banana orange
那么我们echo $arr current
这个是什么
当前指针元素的值
你们觉得会出什么
为什么
是不是就是第一个apple
apple
然后我们做了个each干什么
是不是直接往后推了一个
往后推了一个又current $arr
这次往后一推当前的应该变成什么了
是不是变banana了
变成banana往后推了一个
然后做了个next
next是不是也是下一个
那么banana下一个该是谁了
变成orange了
好的这个三个比较简单
然后第八句我们做的是什么
end
刚才各位同学都知道
end是什么
最后一个最后一个是谁
orange
所以我们这个地方输出的还是orange对吧
还是orange
然后list
刚才我说了
其实是把$arr里面的数组元素
逐一的赋了一个变量名
那你想$val1它应该是谁
逐一是不是就是apple
二就是谁banana三就是谁
orange
所以当我们echo $val1的时候
我们输出的是谁apple
然后下面的二的时候
我们输出的是谁
banana
好的我们来这是我们自己预测出来的
我现在跑下程序看一下结果
一样不一样
apple banana orange好的
然后是orange apple banana
好了
全部完成对吧
所以呢
这个就是我们用数组指针去遍历数组
是遍历数组的这个的方法OK
那么现在我没有相关数组最后一个部分的内容吧
对吧
现在刚是数组指针
还有相关函数对吧
是什么呢
数组的排序
好的关于数组的排序在我们的课本
第58页有一个表2-10
我这样PPT里面刚才三页PPT讲了八个函数
这一页PPT里面就有六个函数
你可以数数今天两节课我们学了多少个函数
那么数组排序
这六个函数在我们课本58页
表2-10里面其实大部分全部都有了
那么这六个函数都是做排序的
但是它们有不同
怎么样的不同呢
我们来分别的读一下这里面的内容
它们这个几个函数都是两个两个一对的
那么第一个sort就是我们做排序
但是请注意它干了什么
删除原有的键名也就是Key值没了
所以如果我们用sort这个函数去排序的话
你最好排的是Key值无意义的那些
那些会很方便的排序
但是如果key值有意义的话
你这一下键名就全没了
那么rsort是什么呢
是逆向排序就是由高到低
那么sort就是由低到高
所以它们两个其实是一对 对吧
一个是正向一个事逆向
那么第二对
第二对这一对同样都加了一个a做开头
同样都加了个a做开头
那么这个a表示什么呢
刚才的那个两个排序
它们删除了键名
那么现在的这个arsort它会保持索引关系
也就是它给你把键名留着呢
那么
同样的一个正向排序一个逆向排序
那么第三对
第三对是什么呢前面都加了个k
这个这张里面
我们对k这个字母都已经有点敏感了
对不对那么k
每次说的都是什么键名
所以呢
ksort它是按照姓名排序的
前面这四个都排的时候
value还得是那个值的顺序
而ksort和krsort都是按键名去排序的
而且一个正向排一个逆向排
同样你按键名排序
自然要保留键名到数据的一个关联
也就是你的Key值不会发生变化
所以呢
我们的这六个函数应用在不同的应用场景里面
那么一般情况下
我推荐各位同学对吧
去使用第二个
第一
因为我们经常是对value值进行排序的
第二就是在我们不确定
这个key值到底有意义还是没意义的情况下
我们最好在屏幕中保持它的索引关系
除非你已经非常确定了Key值完全不必要
那么你可以用最上面这个
否则的话
建议各位同学用下个这个asort和arsort
进行一个排序好的
关于排序
我们来做几个例子
-PHP概述
-PHP概述--作业
-开发环境搭建
--开发环境搭建一
--开发环境搭建二
--集成环境的安装
-开发环境搭建--作业
-PHP语法入门
--语法入门一
--语法入门二
-PHP数据的输出
--数据输出
-PHP数据类型
--数据类型1
--数据类型2
--数据类型3
--数据类型4
--数据类型5
--数据类型6
-PHP常量和变量
--常量和变量1
--常量和变量2
--常量和变量3
--常量和变量4
--常量和变量5
--常量
-PHP常量和变量--作业
-PHP的运算符和表达式
--运算符和表达式1
--运算符和表达式2
--运算符和表达式3
-PHP语法基础--PHP的运算符和表达式
-条件判断语句
--条件判断语句1
--条件判断语句2
--条件判断语句3
--条件语句
-循环控制语句
--循环控制语句
--循环语句练习1
--循环语句练习2
-跳转语句和终止语句
--跳转和终止语句
-流程控制
-数组概述和分类
--数组概述和分类
--PHP数组分类
-数组创建、删除和修改
--数组创建
-数组遍历
--数组遍历1
--数组遍历2
--数组遍历3
--数组遍历4
--数组遍历5
--foreach
-数组相关函数
--数组相关函数1
--数组相关函数2
--数组相关函数3
--数组相关函数4
--数组相关函数5
--数组相关函数6
--数组函数的练习
-PHP数组--作业
-分页函数的应用
-函数的定义与调用
--函数定义与调用
-函数参数传递
--函数参数传递1
--函数参数传递2
-自定义函数总结和实验
-常用变量和数学函数
--变量和数学函数库
--数学函数实验
--数学函数
-日期和时间函数
--日期时间函数1
--时间日期函数2
--倒计时
-PHP函数--作业
-字符串概述
--字符串特点
--字符串处理方式
-常见的字符串函数
--常见字符串函数1
--输出函数1
--输出函数2
--输出函数3
--去除空白函数1
--去除空白函数2
--去除空白函数3
--其他字符串函数1
--其他字符串函数2
--字符串函数实验1
--字符串函数实验2
--字符串函数实验3
--字符串函数实验4
--字符串练习1
--字符串练习2
--字符串练习3
--字符串练习4
--字符串练习5
--字符串函数
-正则表达式
--正则表达式练习
--正则表达式
-字符串函数--作业
-文件概述和操作
--文件概述和操作1
--文件概述和操作2
-文件的上传和下载
--文件上传1
--文件上传2
--文件上传3
--文件下载
-图像基础
--图像基础1
--图像基础2
-图像基本操作
--图像基本操作1
--图像基本操作2
--图像基本操作3
--图像基本操作4
--图像基本操作5
--图像基本操作6
--表单与验证码的结合
--图像技术练习1
--图像技术练习2
--图像技术练习3
--缩略图
-PHP文件与图像技术-作业
-变色验证码
-会话表单
--会话表单概述1
--会话表单概述2
--会话表单概述3
--超全局变量1
--超全局变量2
--超全局变量3
--表单安全验证
--获取表单数据
-cookie概述
--COOKIE简介
--COOKIE
-session概述
--基本应用1
--基本应用2
-会话管理-作业
-会话管理
-MySQL和PHPMyadmin概述
--MySQL概述1
--MySQL概述2
-PHP访问MySQL
--连接服务器
--选择数据库
--浏览表内容1
--浏览表内容2
--使用mysqli扩展添加数据到数据库中
--使用mysqli扩展删除数据库中数据
--使用mysqli扩展修改数据库中数据
-MySQL扩展的使用
--添加数据页面1
--添加数据页面2
--删除页面1
--删除页面2
--删除页面3
--数据修改页面1
--数据修改页面2
--数据修改页面3