Menu
CoddyTech

使用 array_shift 移除元素

本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 13 课,共 68 课。

array_shift() 函数会从数组中移除第一个元素,并返回移除的值。它与 array_unshift() 的作用相反,后者会在数组开头添加元素。

它的工作原理如下:

<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson;  // 输出:Alice
print_r($queue);    // 输出:Array ( [0] => Bob [1] => Charlie )
?>

请注意,array_shift()既会修改原数组,也会返回被移除的元素。移除第一个元素后,所有剩余元素都会自动向前移动以填补空缺:“Bob”从索引 1 移到索引 0,“Charlie”从索引 2 移到索引 1。

这种重新索引会自动进行,确保数组保持正确的数字顺序。如果你对空数组使用 array_shift(),它会返回 null,且不会导致错误。

这个函数对于实现队列特别有用。队列按“先进先出”的顺序处理项目,例如处理排队的顾客,或按接收任务的顺序处理任务。

challenge icon

挑战

简单

你会收到两个输入:一个以 JSON 格式表示的、正在排队等待的初始客户数组,以及一个表示要服务多少位客户的数字。读取这两个输入,将 JSON 字符串转换为数组,然后使用 array_shift() 多次移除队伍最前面的已服务客户,移除次数由指定数字决定,最后使用 print_r() 打印最终数组。

输入格式:两行。第一行包含一个 JSON 数组(示例:["Alice","Bob","Charlie","Diana"]),第二行包含要服务的客户数量(一个数字)。

预期输出:移除队伍最前面的已服务客户后得到的数组,使用 print_r() 显示。

亲手试试

<?php
// 读取顾客的 JSON 数组
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);

// 读取需要服务的顾客人数
$numToServe = intval(fgets(STDIN));

// TODO:在下方编写你的代码
// 使用 array_shift() 从队列前端移除顾客


// 输出最终的数组
print_r($customers);
?>
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: PHP 在线编译器