PHP网站制作数组其他操作前面已经提到,每个数组都有一个内部指针指向数组中的当前元素。当使用函数each()时,就间接地使用了这个指针,但是也可以直接使用和操作这个指针。深圳网站制作公司认为如果创建一个新数组,那么当前指针就将被初始化,并指向数组的第一个元素。调用current($array_name)将返回第一个元素。调用next()或each()将使指针前移一个元素。调用each($array_name)会在指针前移一个位置之前返回当前元素。next()函数则有些不同,调用next($array_name)是将指针前移,然后再返回新的当前元素。使用reset()函数将返回指向数组第一个元素的指针。类似地,调用end($array_name)可以将指针移到数组末尾。reset()和end()可以分别返回数组的第一个元素和最后一个元素。要反向遍历一个数组,可以使用end()和prev()函数。prev()函数和next()函数相反,它是将当前指针往回移一个位置然后再返回新的当前元素。
【示例1】如下所示的代码将反向显示一个数组的内容。如果$array数组的声明如下:
$array=array(1,2,3);
在这个例子中,浏览器中的输出结果就会是:3、2、1。使用each()、current()、reset()、end()、next()、pos()和prev(),可以编写出自己的、能按任何顺序浏览数组的代码。有时候,读者可能希望以相同方式使用或者修改数组中的每一个元素。array_walk()函数允许进行这样的操作。函数array_walk()的原型如下:
intarray_walk(arrayarr,stringfunc,[mixeduserdata])
其调用方法类似于usort()函数的调用,array_walk()函数需要3个参数。第一个是arr,也就是需要处理的数组。第二个是func,也就是用户自定义并将作用于数组中每个元素的函数。第三个参数userdata是可选的,如果使用它,它可以作为一个参数传递给自己的函数。
【示例2】这个用户自定义函数是一个以指定格式显示各个元素的函数。如下所示的代码通过在$array数组的每个元素中调用用户自定义的my_print()函数,从而将每个元素显示在一个新行中。对于数组中的每个元素,array_walk将以关键字和保存在数组中的值为参数,此外,还可以以任何数据作为该函数的userdata参数。可以按如下方式调用函数:Yourfunction(value,key,userdata)
在大多数情况下,函数只能处理数组中的值。但是,在某些情况下,可能还需要使用userdata参数向函数传递一个参数。在少数情况下,可能还需要对数组关键字和值进行处理。在MyPrint()函数中,可以忽略关键字参数和userdata参数。
【示例3】编写一个带有一个参数的函数,这个函数可以用来修改数组的值。
在上面代码中定义了一个名为my_multiply()的函数,它可以用所提供的乘法因子去乘以数组中的每个元素。需要使用array_walk()函数的第三个参数来传递这个乘法因子。因为需要这个参数,所以在定义my_multiply()函数时必须带有3个参数——一个数组元素值($value)、一个数组元素的关键字($key)和参数($factor)。可以选择忽略这个关键字。此外,还有一个需要注意的问题是传递参数$value的方式。在my_multiply()的函数定义中,变量前面的地址符(&)意味着$value是按引用方式传递的。按引用方式传递允许函数修改数组的内容。函数sizeof()可以返回数组元素的个数。可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0。函数array_count_values()更加复杂一些。如果调用array_count_values($array),这个函数将会统计每个特定的值在数组$array中出现过的次数(这就是数组的基数集)。这个函数将返回一个包含频率表的相关数组。这个数组包含数组$array中的所有值,并以这些值作为相关数组的关键字。每个关键字所对应的数值就是关键字在数组$array中出现的次数。
【示例4】创建数组。
$array=array(4,5,1,2,3,1,2,1);
$ac=array_count_values($array);
将创建一个名为$ac的数组,该数组包括:
其结果表示数值4、5、3在数组$array中只出现一次,1出现了3次,2出现了两次。对于一个非数字索引数组,该数组会有许多关键字:名值对,可以使用函数extract()将它们转换成一系列的标量变量。extract()的函数原型如下:extract(arrayvar_array[,intextract_type][,stringprefix]);
【示例5】函数extract()的作用是通过一个数组创建一系列的标量变量,这些变量的名称必须是数组中关键字的名称,而变量值则是数组中的值。$array=array("key1"=>"value1","key2"=>"value2","key3"=>"value3");
extract($array);
echo"$key1$key2$key3";
这段代码的输出如下:
value1value2value3
这个数组具有3个元素,它们的关键字分别是key1、key2和key3。使用函数extract(),可以创建3个标量变量$key1、$key2和$key3。从输出结果中,可以看到$key1、$key2和$key3的值分别为“value1”、“value2”和“value3”。这些值都来自原来的数组。extract()函数具有两个可选参数:extract_type和prefix。变量extract_type将告诉extract()函数如何处理冲突。有时可能已经存在了一个和数组关键字同名的变量,该函数的默认操作是覆盖已有的变量。好了,网站制作公司本文关于“PHP网站制作怎样处理其他数组实操经验分享”就到这里,谢谢关注,博纳网络编辑整理。