现在说数组
php数组有3种类型
数值数组 带有数字 ID 键的数组
关联数组 数组中的每个 ID 键关联一个值
多维数组 包含一个或多个数组的数组
关于数组的声明
<?php $a[5]; $a[5]={1,2,3,4,5}; ?>
像C语言这种常规的2种在php里是行不通的
php有个关键字array 是用来定义数组的
<?php $a=array(); ?>
这就是定义了一个空数组,不需要指定长度,里面元素可以动态添加,添加了多少个,这个数组就有多少大,而且可以继续添加,这点很爽哈
<?php $a=array(); echo $a; ?>
这样可以打印a的类型 结果是Array
但是这样的话就会报错
<?php $a=array(); echo $a[0]; ?>
因为数组是空的
定义数组主要有两种方法,一种是用array
<?php $a=array(1,2,3,4,5); for($i=0;$i<count($a);$i++) echo $a[$i]."<br/>"; ?>
count关键字可以计算一个数组有多少个元素
还有一种就是
<?php $a[0]='a'; $a[1]='b'; $a[2]='c'; for($i=0;$i<count($a);$i++) echo $a[$i]."<br/>"; ?>
直接给变量下标赋值,这个变量就自动成为数组了
但是一定要按下标顺序赋值
比如,这样就是错的
<?php $a[0]='a'; $a[1]='b'; $a[2]='c'; $a[5]='d'; for($i=0;$i<count($a);$i++) echo $a[$i]."<br/>"; ?>
还有数组里的元素可以不是同一类型
<?php $a=array(1,'b',"hello",1.0); for($i=0;$i<count($a);$i++) echo $a[$i]."<br/>"; ?>
是不是觉得很强大
现在说关联数组
关联数组比普通数组更强大了,下标不需要在用数字,而是自己取名字
这就是一种键对值的关系,跟java的map**很类似
<?php $a=array("a"=>1,'b'=>2,"c"=>3); echo $a["a"]."<br/>"; echo $a['b']."<br/>"; echo $a["c"]."<br/>"; ?>
注意是=>不是->,里面的单引号和双引号可以互换
键=>值 键可以重复 但是结果是显示最后那个
<?php $a=array("a"=>1,'a'=>2,"c"=>3); echo $a["a"]."<br/>"; echo $a["c"]."<br/>"; ?>
打印2 3
还有一种关联数组的定义,就是上面说过的
<?php $a["a"]="hello"; $a["b"]="world"; echo $a["a"]."<br/>"; echo $a["b"]."<br/>"; ?>
但是下面这样是错误的
<?php $a["a"]=>"hello"; $a["b"]=>"world"; echo $a["a"]."<br/>"; echo $a["b"]."<br/>"; ?>
另外数字也可以作为键
<?php $a["1"]="hello"; $a["2"]="world"; echo $a["1"]."<br/>"; echo $a["2"]."<br/>"; ?>
是可行的
不加引号可以输出来,但是php有提示注意,这个不要用
<?php $a['a']="hello"; $a['b']="world"; echo $a[a]."<br/>"; echo $a [ b ]"; ?>
下面说多维数组
在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数组,以此类推
这就是定义了一个多维数组,二维的
<?php $a=array(array('a',1,2),array("hello",3,1.1,)); echo $a[0][0]; ?>
按C语言看,就是a[2][3] 不是array有几个就是几维了
同样,多维数组里面的元素也可以是多种类型
而且还可以这样
<?php $a=array(array('a',1,2),array("hello",3,1.1,2,'a')); echo $a[0][0]; ?>
不要求每个子数组的元素个数都一致,这点比C语言爽吧
和普通数组一样,多维数组也可以这样定义,不过我想没人会这样做。。
<?php $a[0][0]="hello00"; $a[0][1]="hello01"; $a[0][2]="hello02"; $a[0][3]="hello03"; $a[1][0]="hello10"; $a[1][1]="hello11"; $a[1][2]="hello12"; $a[1][3]="hello13"; for($i=0;$i<2;$i++){ for($j=0;$j<4;$j++) echo $a[$i][$j]." "; echo "<br/>"; } ?>
这个二维数组是a[2][4] 2行4列,比较规矩的
注意,只要列的元素数量一致才能用循环打印出,C语言则不需要考虑这句话
还可以定义多维关联数组
<?php $a=array('a'=>array('a'=>"hello",'b'=>"world"),'b'=>array('one'=>1,'two'=>2,'three'=>3)); echo $a['a']['a']; ?>
会打印hello
就看上去是有点晕,因为关联数组里面又是关联的
也可以不用这样,像下面这样就清楚许多
<?php $a=array('a'=>array("hello","world"),'b'=>array(1,2,3)); echo $a['a'][0]."<br/>".$a['b'][2]; ?>
打印出
hello 3
绝对不能这样玩
<?php $a=array(array('a'=>"hello",'b'=>"world"),array('one'=>1,'two'=>2,'three'=>3)); echo $a['a']; ?>
错误的
前面说的都是二维数组,那么三维或以上的怎么定义,很简单
<?php $a=array(array(array(1,2,3))); echo $a[0][0][0]; ?>
打印1
<?php $a=array(array(array(1,2,3)),array(array(4,5,6))); echo $a[1][0][0]; ?>
打印4
<?php $a=array(array(array(1,2,3),array(4,5,6)),array(array(7,8,9))); echo $a[0][1][1]; ?>
打印5
应该有人看着会晕
现在分析一下
比如$a[0][1][1]; 最右边中括号的元素在数组里表示最里面的
$a=array(array(array(1,2,3),array(4,5,6)),array(array(7,8,9)));
最大分了3层,最右边中括号的元素就表示最里面的那层
然后往左的中括号就往外一层,以此类推
其实多看看就明白了,分的几层就是几维数组
另外3维数组也不需要了解太透,一般掌握到二维就可以了
前面没详说foreach循环,其实用foreach循环遍历一维数组最好了
<?php $a=array(1,"hello",'a'); foreach($a as $value) echo $value."<br/>"; ?>
输出
1 hello a
是不是很简单
$value 只是一个临时变量,用来保存数组元素,叫什么名都可以
等于是把一个数组交给代理变量,让它帮着来输出
<?php $a=array(1,"hello",'a'); foreach($a as $value) echo $a."<br/>"; ?>
这样是不会输出数组元素的
只会输出
Array Array Array
以上就是php学习正式起航(3)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),