php——三篇夯实根基第三篇_xiaochuhe.的博客-CSDN博客

目录

一、while配合each和list进行数组遍历

(一)each函数的使用

(二)list函数的使用

(三)List函数与each函数联合使用

二、数组排序函数

三、数组指针函数

四、数组其他函数


一、while配合each和list进行数组遍历

While是在外部定义边界条件,如果要实现可以和for循环一样。Each函数使用:each能够从一个数组中获取当前数组指针所指向的元素的下标和值,拿到之后将数组指针下移,同时将拿到的元素下标和值以一个四个元素的数组返回:

0下标 – 》 取得元素的下标值

1下标 - 》 取得元素的值

Key下标 – 》取得元素的下标值

Value下标 – 》取得元素的值

(一)each函数的使用

<h3>数组的遍历——while配合each和list</h3>
<?phpheader("Content-type:text/html;charset=gbk");echo "<pre>";$chuhe = array(1,"name" => "xiaofeng","age" => 22);var_dump($chuhe);//print_r($chuhe);print_r(each($chuhe));print_r(each($chuhe));print_r(each($chuhe));print_r(each($chuhe));
?>

         注意:如果each取不到结果(数组指针移动到最后),返回false

(二)list函数的使用

 List函数使用:list是一种结构,不是一种函数(没有返回值),是list提供一堆变量去从一个数组中取得元素值,然后依次存放到对应的变量当中(批量为变量赋值:值来源于数组):list必须从索引数组中去获取数据,而且必须从0开始。

<h3>list函数的使用</h3>
<?phpheader("Content-type:text/html;charset=gbk");$xiaofeng = array(2,1 => 71);echo "<pre>";print_r($xiaofeng);echo "<hr>";list($first,$f) = $xiaofeng;print_r($first);echo "<hr>";print_r($f);

注意:错误操作:变量多于数组元素,没有指定从0到指定变量的下标的数组元素。因为$second变量对应的下标是1,但是数组中没有下标是1。

(三)List函数与each函数联合使用

  • List与each配合特别好:each一定有两个元素就是0和1下标元素
  • List(变量1,变量2) = each(数组);           //是一种赋值运算,但是可以得到false结果(each取不到正确的结果),整个表达式为false
<h3>List函数与each函数联合使用</h3>
<?phpheader("Content-type:text/html;charset=gbk");$chuhe = array(1,'name' => "xiaochuhe",'age' => 21,'sex' => "男");echo "<pre>";print_r($chuhe);while(list($a,$b) = each($chuhe)){echo $a."&nbsp",$b,'<hr>';}


二、数组排序函数

对数组元素进行排序,都是按照ASCII码进行比较,可以进行英文比较。

  • sort():顺序排序(下标重排)
  • rsort():逆序排序(下标保留)
  • asort():顺序排序(下标保留)
  • arsort():根据键名逆序排序
  • shuffle():随机打乱数组元素,数组下标会重排
<h3>数组排序函数</h3>
<?phpheader("Content-type:text/html;charset=gbk");$xiao = array(5,9 => 9,3,15 => 6,4);echo "<pre>";print_r($xiao);echo "<hr>";//$sort = sort($xiao);print_r($xiao);echo "<hr>";//顺序排序,下标重排//asort($xiao);print_r($xiao);echo "<hr>";//顺序排序,下标保留//arsort($xiao);print_r($xiao);echo "<hr>";//逆序排序,下标保留//krsort($xiao);print_r($xiao);echo "<hr>";//按照键名逆序排序shuffle($xiao);print_r($xiao);echo "<hr>";//随机打乱数组元素,数组下标会重排


三、数组指针函数

  • reset():重置指针,将数组指针回到首位
  • end():重置指针,将数组指针指导最后一个元素
  • next():指针下移,取得下一个元素的值
  • prev():指针上移,取得上一个元素的值
  • current():获取当前指针对应的元素值
  • key():获取当前指针对应的下标值
  • each():返回当前指针所指的元素的值和键,并且移动指针到下一位
<h3>数组指针函数</h3>
<?phpheader("Content-type:text/html;charset=gbk");$chuhe = array('xiaofeng',22,'男',56);echo "<pre>";print_r($chuhe);echo "<hr>";echo next($chuhe);echo "<hr>";//22echo current($chuhe);echo "<hr>";//22echo prev($chuhe);echo "<hr>";//xiaofengecho end($chuhe);echo "<hr>";//56echo key($chuhe);echo "<hr>";//3print_r(each($chuhe));

        注:next和prev会移动指针,有可能导致指针移动到最前或者最后(离开数组),导致数组不能使用,通过next和prev不能回到真确的指针位置。只能通过end或者reset进行指针重置


四、数组其他函数

  • count():统计数组中元素的数量
  • array_push():往数组中加入一个元素(数组后面)
  • array_pop():从数组中取出一个元素(数组后面)
  • array_shift():从数组中取出一个元素(数组前面)
  • array_unshift():从数组中加入一个元素(数组前面)
<h3>数组指针函数</h3>
<?phpheader("Content-type:text/html;charset=gbk");$chuhe = array('xiaofeng',22,'男',56);echo "<pre>";//print_r($chuhe);echo "<hr>";array_push($chuhe,1);//往数组后面加一个元素array_push($chuhe,2);array_push($chuhe,3);//print_r($chuhe);echo "<hr>";//echo array_pop($chuhe),array_pop($chuhe),array_pop($chuhe);echo "<hr>";print_r($chuhe);echo "<hr>";echo array_pop($chuhe);//从数组后面取一个元素echo array_pop($chuhe);echo array_pop($chuhe);    echo "<hr>";array_unshift($chuhe,4);//在数组前面加一个元素array_unshift($chuhe,5);print_r($chuhe);echo "<hr>";//echo array_pop($chuhe);echo array_pop($chuhe);print_r(array_reverse($chuhe));

  • array_keys():获取一个数组的所有下标,返回一个索引数组
  • array_values():获取一个数组的所有值,返回一个索引数组
  • in_array():判断一个元素在数组中是否存在
<h3>数组其他函数</h3>
<?phpheader("Content-type:text/html;charset=gbk");$chuhe = array('xiaofeng',22,'男',56);echo "<pre>";//print_r($chuhe);echo "<hr>";array_push($chuhe,1);//往数组后面加一个元素array_push($chuhe,2);array_push($chuhe,3);//print_r($chuhe);echo "<hr>";//echo array_pop($chuhe),array_pop($chuhe),array_pop($chuhe);echo "<hr>";print_r($chuhe);echo "<hr>";echo array_pop($chuhe);//从数组后面取一个元素echo array_pop($chuhe);echo array_pop($chuhe);    echo "<hr>";array_unshift($chuhe,4);//在数组前面加一个元素array_unshift($chuhe,5);print_r($chuhe);echo "<hr>";echo array_pop($chuhe);echo array_pop($chuhe);echo "<hr>";print_r(array_reverse($chuhe));print_r($chuhe);print_r(array_keys($chuhe));print_r(array_values($chuhe));var_dump(in_array(1,$chuhe));var_dump(in_array(5,$chuhe));

php——数组夯实基础篇相关推荐

  1. PHP——函数夯实基础篇

    目录 一.基本概念 二.基本语法 三.函数命名规范 四.形参和实参 五.形参默认值 六.实参引用传递 七.函数返回值(return) 八.作用域 1.全局变量 ​2.局部变量 3. 超全局变量 (1) ...

  2. delphi 获取数组长度_Java中的数组(基础篇六)

    在学习数组之前我们先来了解一下容器,生活中的容器比如水杯是用来装水的,衣柜是装衣服的,Java中的容器是用来存储数据的,将多个数据存储到一起,每个数据称为该容器的元素. 数组:数组就是存储数据长度固定 ...

  3. java二维数组遍历后转为一维数组_[基础篇]-基础知识整理-05-数组基本概念

    数组 数组是大部分编程语言所支持的数据结构,Java也支持数组,Java的数组是一种引用类型的变量,Java程序通过数组引用变量来操作数组,包括获取数组的长度,访问数组的值等. 数组的基本概念 数组是 ...

  4. Java基础篇4——数组

    Java基础篇4--数组 1.数组的概念 当需要在Java程序中记录单个数据内容时,则声明一个变量即可 当需要在Java程序中记录多个类型相同的数据内容时,则声明一个一维数 组即可,一维数组本质上就是 ...

  5. 小猪猪C++笔记基础篇(四)数组、指针、vector、迭代器

    小猪猪C++笔记基础篇(四) 关键词:数组,Vector. 一.数组与指针 数组相信大家学过C语言或者其他的语言都不陌生,简单的就是同一个变量类型的一组数据.例如:int a[10],意思就是从a开始 ...

  6. 菜鸟学习笔记:Java基础篇6(数组、字符串)

    菜鸟学习笔记:Java常用类(数组.字符串) 数组 概述 数组的定义 二维数组 数组查找和排序 查找 排序 数组运用--字符串 不可变字符序列(String) 可变字符序列(StringBuilder ...

  7. Kiner算法刷题记(二十一):字典树与双数组字典树(数据结构基础篇)

    字典树与双数组字典树(数据结构基础篇) 系列文章导引 系列文章导引 开源项目 本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star. GitHub传送门:Kiner算法算题 ...

  8. Java基础篇--Java 数组

    Java基础篇--Java 数组 Java 数组 声明数组变量 创建数组 处理数组 For-Each 循环 数组作为函数的参数 数组作为函数的返回值 多维数组 多维数组的动态初始化(以二维数组为例) ...

  9. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

最新文章

  1. win10访问不了局域网计算机名,Win10正式版无法访问局域网电脑怎么办
  2. 机器学习-常见的损失函数比较
  3. Qt Creator使用Qt Quick工具栏
  4. java的归并排序算法_归并排序算法Java实现
  5. php chmod 777 chown,linux命令中chown与chmod的区别
  6. Chapter7-13_Dialogue State Tracking (as Question Answering)
  7. GPU是如何工作的?
  8. 【Spring 持久层】Spring 与 Mybatis 整合
  9. Linux应用总结:自动删除n天前日志
  10. 第十九届泳联水中运动世锦赛
  11. 稳压二极管的原理及应用
  12. 中国各个朝代的历史地图
  13. 推出 2020 年图像匹配基准和挑战赛
  14. hoolilaw解读:在美国如何应对交通罚单
  15. 多功能无线测量仪的设计与制作
  16. MATLAB 棋盘格图片校准
  17. mysql 嵌套_MySQL嵌套查询(子查询)
  18. 方向gravity_两种对齐方式,layout_gravity和gravity大不同
  19. 开发落网电台windows phone 8应用的计划(6)
  20. 关于Symbian 模拟器一闪就没的解决办法(Eclipse+MTJ+symbian模拟器)

热门文章

  1. CSS第三级选择器 Selectors Level 3 文档翻译
  2. org.hibernate.StaleStateException:Batch update returned unexpected row count from update [0]; actua
  3. 企业入驻腾讯公益平台步骤
  4. 2600万TRX被盗背后的罗生门
  5. Gate使用手册(四)数据输出
  6. sea.js简单配置
  7. 请和我一起学习机器学习算法(决策树)
  8. 【C语言练习】1.1弹跳小球
  9. 985毕业,土木工程工作两年后转行python,摸爬滚打三年后......
  10. word标题为第一章,将图题由图一.1设置题注为图1.1的取巧方法