php中的数据结构详解
作者名:Demo不是emo
主页面链接:主页传送门
创作初心:对于计算机的学习者来说,初期的学习无疑是最迷茫和难以坚持的,中后期主要是经验和能力的提高,我也刚接触计算机1年,也在不断的探索,在CSDN写博客主要是为了分享自己的学习历程,学习方法,总结的经验等等,希望能帮助到大家
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构每日emo:生活有很多味道,最苦和最甜都是你
学习php的第五天,今天学习的是php中的数组和数据结构,话不多说直接开始
目录
一:PHP中的数组和数据结构
1.数组的定义
2.索引数组
3.关联数组
4.数组的操作
1.增加
2.删除
5.for循环遍历数据
6.foeach函数遍历关联数组
7.list和each函数
1.list函数
2.echo函数
一:PHP中的数组和数据结构
1.数组的定义
数组可以存入多个不同类型的数据,甚至还可以存数组,这样的数组我们叫多维数组,是一个复合数据类型。
数组的英文是array
最简单的声明
$shu = array(1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇');
经过上面的例子我们发现,这里的数组存放了多个类型的数据,这里还有一个知识点,就是下标(索引) 的概念,数组中的第一个数据下标为0,第二个数据下标为1,依次类推,举个例子:
如果想从上面的数组中取出“true”这个参数,就能通过$shu[2]来代表“true”,即
$shu[2] =true
2.索引数组
上面讲到了索引数组的下标从0开始,那如果我们不想让他从0开始可以吗?当然是可以的,这里就要用到我们以前学的键值对应符
<?php$kele = array(5=>'我',20=>'PHP中文网');//打印显示$keleecho '<pre>';var_dump($kele);echo '</pre>';?>
意思就是下标为5的位置和20的位置保存数据(相当于可以指定保存)
注意 :声明数组并不一定需要arary,这样也可以
$minren = ['杨幂','王珞丹',100 => '刘亦菲','黄圣依','范冰冰'];
3.关联数组
只要数组里面有一个下标为字符串的数组,就为关联数组。例如下面这种
$rela = array('帅' => '陈奕迅','很帅' => '黄晓明','灰常灰常帅' => '宁泽涛','有男人味的大叔' => '吴秀波',);
4.数组的操作
1.增加
$minren = array('杨幂','王珞丹','刘亦菲','黄圣依');$minren[] = '范冰冰';
//这里不给出下标位置就是在最后一位数据的后一位添加数据$minren[100] = '范爷';//它的下标又为几呢?
2.删除
$minren = array('杨幂','王珞丹','刘亦菲','黄圣依','范冰冰');//删除时后续的数据并不会自动填补unset($minren[3]);
5.for循环遍历数据
遍历二字,从字面解释就是一个接一个全读访问一次,显示出来。
<?php//声明一个数组,值为1到10$num = array(1,2,3,4,5,6,7,8,9,10);//我们可以得到数组中元素的总个数,为10echo count($num);//遍历这个索引数组的话,我们就可以定义一个变量为$i//$i 的值为0,从0开始//可以设定一个循环条件为:$i 在下标的(9)最大值之内循环for($i = 0 ; $i < count($num) ; $i++){echo $num[$i].'<br />';}?>
6.foeach函数遍历关联数组
我们通过上一章的内容学会了for循环遍历连续下标的索引数组。可是,我们发现我们遍历不了关联数组,也遍历不了下标不连续的索引数组。
那我们其实在学循环的时候,有一个循环是专门用来循环数组的。这个循环的基本语法就是foreach基本语法。基本格式如下:
foreach( 要循环的数组变量 as [键变量 =>] 值变量){//循环的结构体}
有些同学可能还是不太理解,在这里也给大家准备了一个实例
<?php$data = ['fj' => '凤姐','fr' => '芙蓉',];foreach($data as $key => $value){echo $key . '-------' . $value . '<br />';}// 结果 /*fj-------凤姐fr-------芙蓉*/?>
注意:$key 和$value并不是变量名必须得为这两个名字。你命名为其他的也可以,如 $kai => $wen是一样的。 你要清楚键赋值给了哪个变量,值赋值给了另外的哪个变量。
7.list和each函数
1.list函数
它的功能:将索引数组下标为0的对应我变量1,下标1的对应变量2,依此类推,就像下面这样
<?phplist($one , $two , $three) = array('张三' ,'李四' ,'王五');//再次声明:单引号不结释变量,所以输出的是字符串$oneecho '$one----'.$one.'<br />';echo '$two----'.$two.'<br />';echo '$three----'.$three.'<br />';// 结果/*$one----张三$two----李四$three----王五*/?>
2.echo函数
功能:传入一个数组。它会将其中的一个元素拆为个新数组。每次执行这样操作一个元素。执行一次先后移动一次,同样的方式操作下一个数组元素。执行到最后,返回false。这个比较难以理解,还是通过下面的代码给大家解释一下吧
<?php//定义一个变量叫$kongjie$kongjie=['gao'=>'穿黑衣服的','shou'=>'腿特别长特别细','mei'=>'好白','pl'=>'五官端正','type'=>'那就是女神','我是吊丝不敢跟女神搭讪'];//第一次each$data = each($kongjie);echo '<pre>';var_dump($data);echo '</pre>';//第一次each 结果:/*array(4) {[1]=>string(15) "穿黑衣服的"["value"]=>string(15) "穿黑衣服的"[0]=>string(3) "gao"["key"]=>string(3) "gao"}*/?>
读取了$kongjie中的第一个元素,将第一个元素('gao'=>'穿黑衣服的')分解开了。
分解后第一个元素变成了一个新数组。
在新数组里面,将原值(穿黑衣服的)放了索引下标1里面,同时放到了关联下标value里面。
在新数组里面,将原键(gao),放到了关联下标key里面,放到了索引下标0里面。
可以简单理解为从=号处将其分开,使得一个数据变成两个数据并构成新的数组
each的另外一个特性。读一次,向后移动一个元素。这里的元素指定是最开始的元素,而不是分割后的元素,即第一次each分割第一个元素,第二次分割第二个元素,以此类推,直到没有可以操作的元素
php今日份学习结束,(本来早就快写完了手贱按了一下撤销,什么都没了,也没备份,只能重新再写一遍了,我的难过谁能知道啊,哎) ,同志们要加油哇!
php中的数据结构详解相关推荐
- python数据结构包括什么_Python中的数据结构详解
概述 在深入研究数据科学和模型构建之前,Python中的数据结构是一个需要学习的关键内容 了解Python提供的不同数据结构,包括列表.元组等 介绍 数据结构听起来是一个非常直截了当的话题,但许多数据 ...
- Python基石 | Python中的数据结构详解
概述 在深入研究数据科学和模型构建之前,Python中的数据结构是一个需要学习的关键内容 了解Python提供的不同数据结构,包括列表.元组等 介绍 数据结构听起来是一个非常直截了当的话题,但许多数据 ...
- Python中的高级数据结构详解
这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...
- ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...
- 万字长文的Redis五种数据结构详解(理论+实战),建议收藏。
本文脑图 前言 Redis是基于c语言编写的开源非关系型内存数据库,可以用作数据库.缓存.消息中间件,这么优秀的东西一定要一点一点的吃透它. 关于Redis的文章之前也写过三篇,阅读量和读者的反映都还 ...
- redis数据结构详解之Hash(四)
原文:redis数据结构详解之Hash(四) 序言 Hash数据结构累似c#中的dictionary,大家对数组应该比较了解,数组是通过索引快速定位到指定元素的,无论是访问数组的第一个元素还是最后一个 ...
- [转]Redis内部数据结构详解-sds
本文是<Redis内部数据结构详解>系列的第二篇,讲述Redis中使用最多的一个基础数据结构:sds. 不管在哪门编程语言当中,字符串都几乎是使用最多的数据结构.sds正是在Redis中被 ...
- Redis数据结构详解之Zset(五)
原文:Redis数据结构详解之Zset(五) 序言 Zset跟Set之间可以有并集运算,因为他们存储的数据字符串集合,不能有一样的成员出现在一个zset中,但是为什么有了set还要有zset呢?zse ...
- [redis] 10 种数据结构详解
[redis] 10 种数据结构详解 简介 5种常见数据结构 string: 最常见的 string key value list: 双向链表 set: 集合- zset: 有序集合 hash: 类似 ...
最新文章
- django 的form登录 注册
- 058_JavaScript函数arguments对象
- 在让元宇宙“圆梦”这条路上,交互技术卡在哪里了?
- 通用Login功能自动化测试
- angularjs的双向绑定原理实现
- 基于phantomJS实现web性能监控
- FIR调用DSP48E_05
- Dynamics CRM2016 Web API之更新记录
- 中国程序员如何去 Facebook 工作?
- R,让你的数据分析更简便!
- oracle大于当前月,oracle 现阶段年 当前月 当前周 当前日
- Git 初学札记(十)—— Reset 回退的三种状态解析
- JavaScript如何给Table行设置颜色?
- [Java] 蓝桥杯ADV-194 算法提高 盾神与积木游戏
- 查询相关股票十档行情的方法
- windows系统bat批处理 打开乱码
- 424.替换后的最长重复字符
- [bzoj2932][POI1999]树的染色问题
- eclipse Git使用教程
- 一个受人称赞的站点应该用最实新的策略来优化