Menu
CoddyTech

使用 array_slice 提取元素

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

array_slice() 函数可以从数组中提取一部分,而不修改原数组。与 array_pop() 或 array_shift() 这类会更改源数组的函数不同,array_slice() 会创建一个新数组,其中只包含你指定的元素。

这个函数有两个主要参数:offset(起始位置)和 length(要提取的元素数量):

<?php
$scores = [95, 87, 92, 78, 85, 90, 88];
$topThree = array_slice($scores, 0, 3);
print_r($topThree);  // 输出:Array ( [0] => 95 [1] => 87 [2] => 92 )
print_r($scores);    // 原数组未改变
?>

offset 参数告诉 PHP 从哪里开始提取(0 表示第一个元素),而 length 参数指定要提取多少个元素。你也可以将 offset 设为负值,从数组末尾开始计数。

当你需要处理部分数据时,这个函数特别有用。例如,你可以只显示大型列表中的前几项,或提取特定范围的元素进行处理,同时保留原始数据不变。

challenge icon

挑战

简单

你会收到 3 个输入:一个 JSON 格式的商品价格数组、起始位置(偏移量)和要提取的项目数量(长度)。读取这 3 个输入,将 JSON 字符串转换为数组,使用 array_slice() 提取数组中指定的部分,并使用 print_r() 输出提取的切片。

输入格式:共 3 行。第一行包含一个由数字组成的 JSON 数组(示例:[29.99,15.50,42.00,8.75,33.25]),第二行包含偏移量(起始位置),第三行包含长度(要提取的元素数量)。

预期输出:数组中提取的部分,使用 print_r() 显示。

亲手试试

<?php
// 读取价格的 JSON 数组
$json_input = fgets(STDIN);
$prices = (array)json_decode($json_input, true);

// 读取偏移量(起始位置)
$offset = intval(fgets(STDIN));

// 读取长度(要提取的元素数量)
$length = intval(fgets(STDIN));

// TODO:在下方编写代码,提取数组切片并将其输出

?>
quiz icon自我测试

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

逻辑与流程中的所有课

自己练习: PHP 在线编译器