欢迎访问宙启技术站
智能推送

PHP数组函数:多维数组创建、遍历、操作的详细使用方法

发布时间:2023-06-25 20:08:40

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开发有兴趣的同学可以继续深入学习。