PHP 中的数组是有序映射。
映射是一种数据结构,它把键和值关联起来。
数组的用途很广,可以当作线性数组(就像C或Java中那样)、列表[vector]、哈希表、字典、集合、栈或队列来使用。
键是可选的;但如果指定了键,它必须是一个int或一个string。
如果没有提供键,PHP 会默认使用从0开始依次递增的整数键。
$no_keys = ["my", "first", "array"];
$integer_keys = [0 => "my", 1 => "first", 2 => "array"];
$no_keys == $integer_keys // => equal returns true
$no_keys === $integer_keys // => strictly equal returns true
数组可以存储所有类型的值。 每个值的类型都可以不同。
数组既可以声明为字面量(像上面那样直接在代码中写出来),也可以通过函数来创建和操作。 使用下标运算符来访问、赋值和追加值:
$prime_numbers = [2, 3, 5, 6];
$prime_numbers[3] = 7; // replace 6 with 7
$prime_numbers[] = 11; // array now contains [2, 3, 5, 7, 11]
可以把函数的实参指定为可接受任意数量的实参:
<?php
function actOnItems(...$items) {
// $items is an array containing 0 or more values
// used to call the function.
}
actOnItems(1, 2, 3, 4); // $items => [1, 2, 3, 4]
在本练习中,你需要实现一些函数来操作一个编程语言列表。
定义language_list函数,它不接受任何形参,返回一个空数组。
<?php
language_list();
// => []
修改language_list函数,让它接受可变数量的语言形参(字符串)。
它应返回包含这些语言的结果列表。
<?php
$language_list = language_list();
// => []
$language_list = language_list("Clojure", "PHP");
// => ["Clojure", "PHP"]
$language_list = language_list("PHP", "Haskell", "Java", "C++", "Rust")
// => ["PHP", "Haskell", "Java", "C++", "Rust"]
定义add_to_language_list函数,它接受 2 个形参:一个语言数组,以及要添加的新语言。
<?php
$language_list = language_list();
// => []
$language_list = add_to_language_list($language_list, "Clojure");
// => ["Clojure"]
定义prune_language_list函数,用于从语言数组中移除第一个语言。
<?php
$language_list = language_list("PHP");
// => ["PHP"]
$language_list = prune_language_list($language_list);
// => []
定义current_language函数,它接受 1 个形参(一个_语言列表_)。
它应返回列表中的第一个语言。
假定该列表至少有一个元素。
<?php
$language_list = language_list("PHP", "Prolog");
// => ["PHP", "Prolog"]
$first = current_language($language_list);
// => "PHP"
定义language_list_length函数,它接受 1 个形参(一个_语言列表_)。
它应返回列表中语言的数量。
<?php
$language_list = language_list("PHP", "Prolog", "Wren");
// => ["PHP", "Prolog", "Wren"]
language_list_length($language_list);
// => 3