^ 回到顶部
  • 人生没有定律,每个人都有自己的节奏
  • 本站wordpress建站教程均通过实践后发布,希望对你有帮助,如果有代码出错,请联系站长解决
  • 希望你的坚持,都是因为热爱,而不是因为不甘心
  • 8年wordpress建站经验,5星服务品质
  • 那些不愿意让你吃亏的人,才是真正值得你深交的人,也是值得你付出时间的人
  • 腾讯云3年2核2G新品轻量限时特惠只需408元

零起点php入门第14课-php数组(3)

这篇文章陌小雨继续和大家一起来学习 php 数组的相关操作。

一、数组元素的相关计算。

2 核 2G 限时特惠 396 元/3 年    宝塔建站 10850 大礼包

在使用数组的过程中很多时候需要对数组中的值进行求值运算。在之前的零起点 php 入门教程中,就使用了 array_sum 来计算数组中元素的和。除了计算和的函数外还提供了 array_product 函数来计算数组中元素的乘积。本篇文章我们就来介绍这两个系统函数。

array_sum 函数用来计算数组中所有值的和,它的函数原型如下:

number array_sum ( array $array )

参数 array 即为要求和的数组。

注意:array_sum 函数会将数字字符串转换为数值,将布尔值 TRUE 转换为 1,而把其他不能转换为数值的通常转换为 0 来计算。

<?php
	$arr1=array(1,2,3,4,'5','05',TRUE);					//等价于 1+2+3+4+5+5+1=21
	$arr2=array(1,2,'ABC',3,'hello',4,'5','05',NULL);		//等价于 1+2+0+3+0+4+5+5+0=20
	echo '$arr1 中元素值的和为:'.array_sum($arr1);		//求取数组$arr1 中数值的和
	echo '<br />$arr2 中元素值的和为:'.array_sum($arr2);	//求取数组$arr2 中数值的和
?>

上述代码运行结果为:

$arr1 中元素值的和为:21
$arr2 中元素值的和为:20

array_product 函数用来计算数组中所有值的乘积,它的函数原型如下:

number array_product ( array $array )

参数 array 即为要求乘积的数组。

注意:与 array_sum 函数类似的,array_product 函数会将数字字符串转换为数值,将布尔值 TRUE 转换为 1,而把其他不能转换为数值的通常转换为 0 来计算。因此对于含有不能转换为数值的元素的数组使用该函数是无实际意义的,因为任何值与 0 的乘积都为 0。

<?php
	$arr1=array(3,4,5,6,'7',TRUE);		//等价于 3*4*5*6*7*1=2520
	$arr2=array(3,4,5,6,'7','hello');		//等价于 3*4*5*6*7*1*0=0
	echo '计算数组$arr1 中元素的乘积为:'.array_product($arr1);		//对数组元素求乘积
	echo '<br />计算数组$arr2 中元素的乘积为:'.array_product($arr2);		//对数组元素求乘积
?>

上述代码运行结果为:

计算数组$arr1 中元素的乘积为:2520
计算数组$arr2 中元素的乘积为:0

二、增加与删除数组元素

在 PHP 中,数组定义后,通常不是一成不变。在程序执行过程中,数组的元素可能被增加、删除和修改,这也是 PHP 的数组之所以非常强大的一个原因。下面就来详细介绍这些知识。

2.1、增加数组元素

在有些情况下,数组中的元素并不是在定义数组时候就可以确定的,通常会在程序运行时动态地向数组中增加元素。为数组添加元素的语法类似于赋值,如下所示:

数组名[索引] = 值

为数组增加元素需要使用未在数组中使用的索引或者不指定索引,不指定索引添加的数组索引同样由系统指定,指定规则为获取当前数组中最大整数索引值并在其基础上加 1 作为新元素的索引。

在接下来的示例中将用到 rand 函数,它用来生成随机数,函数原型如下:

int rand ([ int $min ], int $max )

参数 min 和 max 分别用来指定生成的随机数的最小和最大范围。

<?php
	$arr=array();		//定义一个数组,它没有任何元素
	echo '增加元素之前数组中元素的个数为:'.count($arr);		//输出数组个数
	for($i=0;$i<3;$i++)
		$arr[]=rand(0,99);		//使用 for 循环为数组循环添加 3 个元素,rand 函数用啦产生随机数
	echo '<br />增加元素之后数组中的元素个数为:'.count($arr);
	echo '<br />输出数组的详细信息:<br />';
	print_r($arr);		//输出数组详细信息
	$arr[8]=100;		//为数组添加指定索引的元素
	for($i=0;$i<3;$i++)
		$arr[]=rand(0,99);		//使用 for 循环为数组循环添加 3 个元素,rand 函数用啦产生随机数
	echo '<br />增加元素之后数组中的元素个数为:'.count($arr);
	echo '<br />输出数组的详细信息:<br />';
	print_r($arr);		//输出数组详细信息
?>

上述代码运行结果为(可能会有所差别,因为数组元素的值是随机的):

增加元素之前数组中元素的个数为:0
增加元素之后数组中的元素个数为:3
输出数组的详细信息:
Array ( [0] => 74 [1] => 78 [2] => 65 )
增加元素之后数组中的元素个数为:7
输出数组的详细信息:
Array ( [0] => 74 [1] => 78 [2] => 65 [8] => 100 [9] => 96 [10] => 50 [11] => 16 )

我们需要看到上述示例代码中指定索引和不指定索引的形式下元素索引的变化,当代码第 9 行为键指定为 8 的时候,第 11 行添加的元素的键就为会以 8 作为基础递增。

2.2、修改数组元素

修改数组中的元素只要访问到指定的元素,然后为其重新赋值即可,语法形式如下:

数组名[索引] = 值

<?php
	$arr=array(98,'hello',67,'A',85,NULL);		//定义一个数组
	echo '输出数组修改元素之前的详细信息:<br />';
	print_r($arr);		//输出数组修改之前的详细信息
	$arr[1]='Hi';		//修改数组的元素
	$arr[5]='good!';
	$arr[3]=100;
	echo '<br />输出数组修改元素之后的详细信息:<br />';
	print_r($arr);		//输出数组修改之前的详细信息
?>

上述代码运行结果为:

输出数组修改元素之前的详细信息:
Array ( [0] => 98 [1] => hello [2] => 67 [3] => A [4] => 85 [5] => )
输出数组修改元素之后的详细信息:
Array ( [0] => 98 [1] => Hi [2] => 67 [3] => 100 [4] => 85 [5] => good! )

2.3、删除数组元素

当数组中的元素不再需要的时候我们就可以删除它。同样的当整个数组不再需要的时候我们同样可以删除整个数组。完成这这些操作可以使用的函数是 unset,它用来释放指定的变量,它的函数原型如下:

void unset ( mixed $var [, mixed $var [, $... ]] )

unset 可以接受多个参数,参数 var 即为需要释放的变量,在本篇学习中我们用来释放数组中的元素和数组。

<?php
	$arr=array(98,'hello',67,'A',85,NULL);		//定义一个数组
	echo '删除元素之前数组中的元素个数为:'.count($arr);		//输出数组元素个数
	echo '<br />数组的详细信息为:<br />';
	print_r($arr);		//输出数组详细信息
	unset($arr[5]);		//删除索引为 5 的元素
	echo '<br />删除元素后前数组中的元素个数为:'.count($arr);		//输出数组元素个数
	echo '<br />数组的详细信息为:<br />';
	print_r($arr);		//输出数组信息
	unset($arr[1]);		//删除索引为 1 的元素
	echo '<br />删除元素后前数组中的元素个数为:'.count($arr);		//输出数组元素个数
	echo '<br />数组的详细信息为:<br />';
	print_r($arr);		//输出数组详细信息
	unset($arr);		//删除整个数组
	echo '<br />释放$arr 变量后尝试输出数组信息:<br />';
	print_r($arr);		//尝试数组数组信息(运行会报错)
?>

上述代码运行结果为:

删除元素之前数组中的元素个数为:6
数组的详细信息为:
Array ( [0] => 98 [1] => hello [2] => 67 [3] => A [4] => 85 [5] => )
删除元素后前数组中的元素个数为:5
数组的详细信息为:
Array ( [0] => 98 [1] => hello [2] => 67 [3] => A [4] => 85 )
删除元素后前数组中的元素个数为:4
数组的详细信息为:
Array ( [0] => 98 [2] => 67 [3] => A [4] => 85 )
释放$arr 变量后尝试输出数组信息:

Notice: Undefined variable: arr in D:\xampp\htdocs\yuan\05\5-13.php on line 16

赠人玫瑰,手有余香。