5.4 对数组进行分割、合并
数组的分割是指将一个数组拆分成一个或多个数组。而数组的合并,可以看成分割的逆运算,即将多个数组组合成一个新的数组。下面分别介绍和分割、合并数组有关的PHP内置函数。
5.4.1 实现数组分割
使用函数array_chunk()可以对一个数组进行分割,该函数语法如下。
array array_chunk(array $input_array, int $size, bool $preserve_key);
该函数接受3个参数,$input_array是将要分割的数组(即原数组);$size表示原数组被分割后,每个数组中元素的个数;$preverse_key是可选参数,为TRUE时分割后的每个数组的索引使用原数组的索引名;为FALSE时分割后的每个数组的索引都将使用从0开始的整数索引。该函数的返回值是一个数组,这个数组的索引从0开始,该数组的每个元素仍然是一个数组,即原数组被分割后的一个数组。代码5-8演示了如何使用array_chunk()分割一个数组。
代码5-8 使用函数array_chunk()分割数组5-8.php
01 <?php 02 $ms_office = array( 03 'wd'=>'word', 04 'ec'=>'excel', 05 'ol'=>'outlook', 06 'ac'=>'access', 07 'vs'=>'visio' 08 ); // 定义数组$ms_office 09 10 echo '<pre>'; 11 12 print_r(array_chunk($ms_office,2)); 13 print_r(array_chunk($ms_office,2,TRUE)); 14 ?>
【代码解析】代码第10行是为了让输出结果格式化。第12行的array_chunk()函数第2个参数表示分割后每个数组的元素为2。第13行中array_chunk()的第3个参数表示分割后的每个数组的索引使用原数组的索引名。这段代码的执行结果如图5-6所示。
5.4.2 实现数组合并
使用函数array_merge()可以合并一个或多个数组,该函数的语法如下。
array array_merge($array …);
该函数接受一个或多个数组作为参数,PHP5中,它只接受array类型的参数。该函数返回一个合并后的数组。代码5-9演示了函数array_merge()的用法。
代码5-9 使用函数array_merge()合并数组5-9.php
01 <?php 02 $arr1 = array('Earth','Venus'); // 定义数组$arr1 03 $arr2 = array(4=>'Mars',5=>'Jupiter',6=>'Saturn'); // 定义数组$arr2 05 $planet = array_merge($arr1,$arr2); // 合并数组$arr1 和$arr2 06 07 echo '<pre>'; 08 print_r($planet); 09 ?>
【代码解析】array_merge()函数非常容易理解,就是先定义两个数组(如代码第02~03行),然后第5行直接用该函数合并两个数组。这段代码执行结果如图5-7所示。
图5-6 使用array_chunk()分割数组
图5-7 使用array_merge()合并数组
注意 从代码5-9的执行结果可以看出,如果要合并的数组中只有一个数组的索引是数字,那么合并后的数组的索引会从0开始,重新索引。如果要合并的数组中有相同的字符串索引,那么后面的索引值会覆盖前一个索引值。
共有条评论 网友评论