PHP二维数组(多维数组)的用法(附带实例)
PHP 程序中,多维数组也是关于数组的数组,即数组成员的值也是数组类型,如下面的代码:
代码执行结果为:
读取二维数组中某个成员时,需要按维度指定键(索引),如下面的代码。
下面了解一些常用的多维数组操作函数。
下面的代码演示了 array_column() 函数的使用:
下面的代码会在 array_column() 函数中使用第三个参数指定提取结果数组中成员的键:
下面的代码演示了 array_chunk() 函数的应用:
下面的代码演示了 array_multisort() 函数的简单应用:
<?php $arr = [[1,2,3],[4,5,6],[7,8,9]]; foreach($arr as $m0) { foreach($m0 as $m1) { echo $m1(","); } echo "<br>"; } ?>这里定义了一个二维数组,第一维包含三个成员(数组类型),每个成员又包含了三个整数成员。
代码执行结果为:
1,2,3
4,5,6
7,8,9
读取二维数组中某个成员时,需要按维度指定键(索引),如下面的代码。
<?php $arr = [[1,2,3],[4,5,6],[7,8,9]]; echo $arr[1][1]; ?>这里读取了第一维数组中的第二个成员中的第二个数据,页面会显示 5。
下面了解一些常用的多维数组操作函数。
PHP多维数组操作函数
1) array_column()
array_column() 函数返回数组中指定的一列,函数定义如下:array_column(array $input, mixed $column_key[, mixed $index_key = null]) : array其中,参数 $input 为提取数据的数组;参数 $column_key 指定提取的列,如果设置为 null 则返回全部成员。如果 $index_key 指定了列,此列的数据会作为返回数组的成员的键。
下面的代码演示了 array_column() 函数的使用:
<?php $arr = [[1,2,3],[4,5,6],[7,8,9]]; $arr1 = array_column($arr,1); print_r($arr1); ?>执行代码会提取第 2 列(索引从 0 开始)的数据,即 2、5、8,代码执行结果为:
Array ( [0] => 2 [1] => 5 [2] => 8 )
下面的代码会在 array_column() 函数中使用第三个参数指定提取结果数组中成员的键:
<?php $arr = [["eartch","地球"],["mars","火星"],["jupiter","木星"]]; $arr1 = array_column($arr,1,0); print_r($arr1); ?>执行代码会提取 $arr 数组第 2 列(索引 1)的数据,即行星的中文名,并指定第 1 列(索引 0)的数据作为新数组成员的键,代码执行结果为:
Array ( [eartch] => 地球 [mars] => 火星 [jupiter] => 木星 )
2) array_chunk()
array_chunk() 函数将一个数组分割成多维数组,函数定义如下:array_chunk(array $array, int $size[, bool $preserve_keys = false]) : array参数 $array 为需要分割的数组;参数 $size 指定分割后每个数组的成员数量;参数 $preserve_keys 指定是否保留原数据成员的键,默认是不保留,此时,新的键会使用数值索引。
下面的代码演示了 array_chunk() 函数的应用:
<?php $arr = range(1,10); $arr1 = array_chunk($arr,3); foreach($arr1 as $m) { print_r($m); echo "<br>"; } ?>代码执行结果为:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
Array
(
[0] => 4
[1] => 5
[2] => 6
)
Array
(
[0] => 7
[1] => 8
[2] => 9
)
Array
(
[0] => 10
)
2) array_multisort()
array_multisort() 函数可以对多个数组或多维数组按值排序,函数定义如下:array_multisort(array &$array1 [, array &$array2 [, mixed $array2_sort_order = SORT_ASC [, mixed $array2_sort_flags = SORT_REGULAR [, ...]]]])参数以三个为一组,表示一个数组或多维数组及其排序规则。其中,第一个参数指定需要排序的数组对象;第二个参数指定排序方法,默认为升序(SORT_ASC),降序时使用 SORT_DESC 值;第三个参数指定比较方法,包括:
- SORT_REGULAR,默认值。按正常方式比较(不修改类型);
- SORT_NUMERIC,按数值大小比较;
- SORT_STRING,按字符串比较;
- SORT_LOCALE_STRING,根据本地化设置,按字符串比较。可以通过 setlocale() 函数修改本地化信息;
- SORT_NATURAL,以字符串的“自然排序”。
- SORT_FLAG_CASE,可以和 SORT_STRING 或 SORT_NATURAL 配合应用(使用 | 或 or 运算符),比较时忽略字母大小写。
下面的代码演示了 array_multisort() 函数的简单应用:
<?php $arr = [[4,9,6],[1,8,3],[7,2,5]]; array_multisort($arr[0],$arr[1],$arr[2],SORT_DESC); foreach($arr as $m) { print_r($m); echo "<br>"; } ?>代码执行结果为:
Array
(
[0] => 4
[1] => 6
[2] => 9
)
Array
(
[0] => 1
[1] => 3
[2] => 8
)
Array
(
[0] => 7
[1] => 5
[2] => 2
)