PHP

PHP 知识量:7 - 20 - 67

5.2 构建与遍历><

定义数组- 5.2.1 -

定义一个数组可以使用array()函数,也可以使用数组名加中括号直接赋值的方式。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php
        $array1 = array('red', 'yellow', 'green');
        $array2[0] = 'red';
        $array2[1] = 'yellow';
        $array2[2] = 'green';
        var_dump($array1);
        echo "<br>";
        var_dump($array2);
        ?>
    </body>
</html>

以上代码中,分别使用两种方法,定义了两个数组$array1和$array2,它们完全相同。

使用array()函数定义关联数组稍微复杂一些,需要指明键名,例如:

$array1= array('one' => 'red', 'two' => 'yellow', 'three' => 'green');

添加元素- 5.2.2 -

要向一个已经存在的数组添加新元素,只需要将新值赋值给数组名加一个空白中括号即可。例如:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php
        $array1 = array('red', 'yellow', 'green');
        var_dump($array1);
        echo "<br>";
        $array1[] = 'blue';
        var_dump($array1);
        ?>
    </body>
</html>

以上代码中,“blue”会自动被赋值给$array1[3],即数组中下一个最大的数字索引。

如果是在关联数组中,上述方式也是可以的,但是会产生一个混合了数字和字符串键名的数组,这在数组管理上容易带来混乱,因此,在向关联数组中添加新元素时,最好在中括号内明确指示它的字符串键名。

删除元素- 5.2.3 -

要删除数组中某个元素可以使用array_splice()函数,它实际是一个数组截取函数,它有三个参数:

  1. 第一个参数是要操作的数组

  2. 第二个参数是起始位置

  3. 第三个参数是截取的长度,是可选的,如果省略则会截取到数组末尾。

array_splice()函数会返回截取的数组,原数组则是截取后剩下的部分组成的数组,从而实现了数组元素的删除。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php
        $array1 = array('one' => 'red', 'two' => 'yellow', 'three' => 'green');
        var_dump($array1);
        echo "<br>";
        $part = array_splice($array1, 1);
        var_dump($array1);
        echo "<br>";
        var_dump($part);
        ?>
    </body>
</html>

以上代码中,经过array_splice()函数的操作,数组$array1会包含red一个元素,数组$part会包含yellow和green两个元素。

要删除数组元素还可以使用unset()函数,只需要将要删除的数组元素作为值传递给它即可。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php
        $array1 = array('one' => 'red', 'two' => 'yellow', 'three' => 'green');
        var_dump($array1);
        echo "<br>";
        unset($array1['one']);
        var_dump($array1);
        ?>
    </body>
</html>

以上代码中,经过unset()函数的操作,数组$array1会包含yellow和green两个元素,元素red则被删除了。

遍历数组- 5.2.4 -

对数组元素进行遍历可以使用foreach语句,它允许循环对数组每一个元素的键/值进行访问。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php
        $array1 = array('one' => 'red', 'two' => 'yellow', 'three' => 'green');
        foreach ($array1 as $key => $value) {
            echo "The key is : $key and the value is : $value<br>";
        }
        ?>
    </body>
</html>

以上代码中,通过foreach语句对数组$array1进行了遍历,每循环一次,就读取数组当前的键名和键值,分别赋值给变量$key和$value,并打印出来。这类似于var_dump()函数,但是使用foreach语句可以按照自己的意图对打印格式进行控制。当然除了打印,还可以在每次循环中进行其他操作。