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

PHP中的array_unshift()函数:向数组头部添加元素

发布时间:2023-06-25 16:34:43

在 PHP 中,数组是一种非常常用的数据结构。虽然数组在 PHP 中有多个实现方式,但无论是普通数组还是关联数组,它们都共享一些常见的数组操作函数,如:添加元素、删除元素、修改元素、遍历数组等等。

其中,有一个非常实用的函数是 array_unshift(),这个函数可以向数组头部添加元素,也就是将一个元素插入到数组开头。

语法:array_unshift(array,value1,value2,...)

其中,array 代表要插入元素的数组,value1、value2 ... 是要插入的元素,可以有多个。

例如:

$fruits = array("apple", "banana");
array_unshift($fruits, "orange", "pear");
print_r($fruits);

上述代码将向 fruits 数组的头部添加两个元素,“orange” 和 “pear”,输出结果为:

Array ( [0] => orange [1] => pear [2] => apple [3] => banana )

可以看到,输出结果中 fruits 数组的头部已经添加了两个元素,而原有的元素 “apple” 和 “banana” 则依次后移了两个位置。

需要注意的是,在向数组头部添加元素时,如果数组的键名是数字,新元素将插入到索引最小的位置。如果键名是字符串,则新元素将插入到键名为 0 的位置,其他键名依此后移。

下面再举一个具体的例子:

$students = array("Tom" => 90, "Jerry" => 85);
array_unshift($students, "Lucy", 95);
print_r($students);

上述代码向 students 数组头部添加了两个元素,“Lucy” 和 95,输出结果为:

Array ( [0] => Lucy [1] => 95 [Tom] => 90 [Jerry] => 85 )

可以看到,“Lucy” 和 95 被插入到了键名为 0 和 1 的位置,而原有的 “Tom” 和 “Jerry” 分别作为键名和值被保留了下来。

此外,需要注意的是,array_unshift() 函数的返回值是插入元素后数组的长度,而不是新的数组本身。

在实际开发中,array_unshift() 函数经常用于实现队列(先进先出)数据结构。例如,可以编写一个“打印队列”,每次有新的打印任务时将任务添加到队列头部,然后按照队列顺序依次处理每个任务,直到队列为空为止。代码如下:

$printQueue = array();
array_unshift($printQueue, "task1");
array_unshift($printQueue, "task2");
array_unshift($printQueue, "task3");
while(!empty($printQueue)) {
    $task = array_pop($printQueue);
    echo "printing $task...
";
}

上述代码使用 array_unshift() 函数向打印队列头部添加了三个打印任务,然后通过 array_pop() 函数从队列尾部依次取出每个任务并打印。输出结果为:

printing task1...
printing task2...
printing task3...

总的来说,array_unshift() 函数是 PHP 数组操作中一个非常实用的函数,可以方便地向数组头部添加元素,非常适用于数组队列等常见场景。