PHP数组函数:多维数组创建、遍历、操作的详细使用方法
PHP中,数组是一种非常常用且重要的数据类型,它可以存储一系列的值,并且可以通过一个键名来访问值。而多维数组是指数组中的元素也是一个数组的形式。在开发中,我们常常需要用到PHP数组函数来实现对多维数组的操作,本文将详细介绍多维数组的创建、遍历、操作等相关的PHP数组函数的使用方法。
一、多维数组创建
多维数组可以通过多种方式创建,以下是几种比较常见的方式:
1. 直接创建
可以通过在数组中包含数组的形式,直接创建一个多维数组:
$numArray = array(
array(1,2,3),
array(4,5,6),
array(7,8,9)
);
其中$numArray为一个二维数组,包含三个数组元素,每个数组元素也是一个包含三个整型数的数组。如果再新增一个维度的话只需在前面的数组中再加上一个数组即可。
2. 动态创建
可以先创建一个空数组,再通过此数组的元素赋值为数组的形式,进行动态创建:
$numArray = array(); $numArray[0] = array(1,2,3); $numArray[1] = array(4,5,6); $numArray[2] = array(7,8,9);
以上代码和 种方式创建的结果一样,即为一个二维数组。
3. 循环创建
可以通过循环来动态创建多维数组:
$numArray = array();
for($i=0; $i<3; $i++) {
for($j=0; $j<3; $j++) {
$numArray[$i][$j] = $i*3+$j+1;
}
}
以上代码也是创建一个二维数组,数组元素从1~9。
二、多维数组遍历
对于多维数组的遍历也有多种方式,如下列几种:
1. foreach循环
可以通过两重foreach来遍历一个二维数组:
$numArray = array(
array(1,2,3),
array(4,5,6),
array(7,8,9)
);
foreach($numArray as $numArr) {
foreach($numArr as $num) {
echo $num." ";
}
echo "
";
}
以上代码会输出一个3x3的矩阵,每个元素后跟一个空格,每行末尾加上一个换行符。
2. for循环
可以通过两重for循环来遍历一个二维数组:
$numArray = array(
array(1,2,3),
array(4,5,6),
array(7,8,9)
);
for($i=0; $i<count($numArray); $i++) {
for($j=0; $j<count($numArray[$i]); $j++) {
echo $numArray[$i][$j]." ";
}
echo "
";
}
以上代码同样会输出一个3x3的矩阵,每个元素后跟一个空格,每行末尾加上一个换行符。
三、多维数组操作
在实际开发中,我们常常需要对多维数组进行一些增删改查等操作,下面就介绍几个PHP数组函数实现这些操作的方法:
1. 数组合并
可以使用PHP数组函数array_merge()来合并多个数组成一个新的数组:
$arr1 = array("blue", "red");
$arr2 = array("green", "yellow");
$arr3 = array("purple", "pink");
$mergeArr = array_merge($arr1, $arr2, $arr3);
print_r($mergeArr);
以上代码会输出一个合并后的数组,即:
Array
(
[0] => blue
[1] => red
[2] => green
[3] => yellow
[4] => purple
[5] => pink
)
同样可以合并多维数组,如下:
$numArray1 = array(
array(1,2,3),
array(4,5,6)
);
$numArray2 = array(
array(7,8,9),
array(10,11,12),
array(13,14,15)
);
$mergeNumArray = array_merge($numArray1, $numArray2);
print_r($mergeNumArray);
以上代码会输出一个合并后的二维数组,即:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 4
[1] => 5
[2] => 6
)
[2] => Array
(
[0] => 7
[1] => 8
[2] => 9
)
[3] => Array
(
[0] => 10
[1] => 11
[2] => 12
)
[4] => Array
(
[0] => 13
[1] => 14
[2] => 15
)
)
2. 数组排序
可以使用PHP数组函数sort()、rsort()、ksort()、krsort()等函数对数组进行排序,其具体的使用方法可以参考PHP手册。
下面是一个对二维数组进行排序的例子:
$numArray = array(
array(9,6,3),
array(7,5,1),
array(8,2,4)
);
foreach ($numArray as $key => $row) {
$volume[$key] = $row[0];
$edition[$key] = $row[1];
}
array_multisort($volume, SORT_DESC,$edition, SORT_ASC, $numArray);
print_r($numArray);
以上代码会输出一个按 列降序排列,第二列升序排列的二维数组。
3. 数组查找
可以使用PHP数组函数in_array()、array_search()等函数来查找指定的值在数组中的位置或是否存在于数组中:
$nameArray = array("Tom", "Mary", "John", "Peter");
if(in_array("Mary", $nameArray)) {
echo "Mary is in the array";
} else {
echo "Mary is not in the array";
}
以上代码会输出Mary is in the array,表示Mary确实在数组中。
如果要查找指定值在二维数组中的位置,则需要通过循环来实现:
$numArray = array(
array(1,2,3),
array(4,5,6),
array(7,8,9)
);
$searchNum = 5;
for($i=0; $i<count($numArray); $i++) {
if(in_array($searchNum, $numArray[$i])) {
$j = array_search($searchNum, $numArray[$i]);
echo "The position of ".$searchNum." is (".$i.",".$j.")";
break;
}
}
以上代码会输出The position of 5 is (1,1),表示5出现在数组第2行第2列的位置。
4. 数组插入和删除
可以使用PHP数组函数array_push()、array_pop()、array_unshift()、array_shift()等函数对数组进行插入和删除操作:
$nameArray = array("Tom", "Mary", "John", "Peter");
array_push($nameArray, "Paul");
array_unshift($nameArray, "David");
print_r($nameArray);
以上代码会输出一个在数组末尾插入了一个元素Paul,在数组开头插入了一个元素David的新数组。
删除元素可以使用array_pop()和array_shift()函数,分别删除数组末尾的元素和数组开头的元素。
以上就是PHP数组函数的多维数组创建、遍历、操作等相关详细介绍,如果对PHP开发有兴趣的同学可以继续深入学习。
