向数组添加数据我们可以做到了,数组的数据怎么读取?是这节学习的重点。
如果程序员能明确的知道一个数组的下标,就可以直接通过下标获取数据。本章第23节,楠神演示了这样一张图片:
这是楠神写的一个程序的配置文件,文件里定义了一个大数组,用return返回,被其他PHP代码require_once引用,就可以获取一些重要的参数。好处是不把重要参数直接写到业务逻辑代码里,后期有改动只需要在配置文件改动一下,而不用直接到逻辑代码里修改(这样可能会修改很多地方,容易出错),提高了程序的可维护性。
怎么通过下标获取这些参数,看演示:
结果:
4、6、8行的代码是对二维数组的读取,返回的是整数型数据,都能正常显示,只有10行的代码不能显示,报了Notice错误,那就是因为echo语法对数组数据无效。
通过下标获取很简单吧,这是在对数组数据了解的情况下,可通过下标获取。有时根据业务需要,只想从一组数据里获取想要的那个数据,并不是指定要获取哪个下标的数据。例如:$arr = [13, 5, 8, 11, 7, 6];通过代码获取这个数组中最小的值,那我们只能通过循环对这组数据一一比较了。
PHP的循环结构语句一共有四种,前面我们已学过for循环、while循环、do-while循环,这节开始学习第四种,针对数组遍历的foreach循环。看示例:
结果:
很简单吧,变量$val的值是每一轮循环的数据值,变量名随便定义。
foreach循环结构会从数组的第一项一直遍历循环到最后一项,然后结束。
如果是一个关联数组,想获取它的下标,可以再加一点代码。
结果:
变量$key的值是每一轮循环的下标值,变量名随便定义。$arr是索引数组,如果是关联数组,$key就可能是字符串。
每个数组,其内部都有一个“指针”,该指针决定了该数组当前取值的时候,取到的元素。
foreach遍历过程中,都是依赖与该指针而进行的!
举例:$arr1 = array(2=>1, ‘dd’=>5, 1=>1.1, “abc”, 0=>true)
学会了foreach语句结构,就可以解决求最小值的问题了,看代码:
结果:
如何遍历一个二维数组呢,那就是foreach里继续foreach,楠神就不做演示了。
foreach也是正常的循环语法结构,可以有break和continue等操作。
用for循环也可以遍历一个数组,需要借助一个函数来获取数组的个数,看示例:
结果能正常打印每个数字。
如何把一个数组里的某一数据删除:
前面变量有关函数那一节,我们讲过一个unset语句,可以释放变量,用unset可以把整个数组释放unset($arr),也可以只释放数组中某一个下标的数据unset($arr[0])。
出一个作业,看朋友们是否有能力了用数组解决了下面这个问题:
输出杨辉三角图
提示:使用两层for循环和二维数组解决问题,参考答案在本节学习代码里。