PHP编程
Completion requirements
数组
数组是可以在 PHP 脚本中定义的数据集。数组可以包含其他数组(因此可以构建多维数组)。数组也可以称为表(tables)或哈希(hashes)。
语法
数组可以通过两种方式创建。第一种是使用 array()
函数,第二种是使用方括号 []
。
array()
函数方法
在使用 array()
函数的方法中,您可以像这样创建数组:
$foo = bar();
例如,要创建一个顺序编号的数组(例如 "0, 1, 2, 3"),可以这样做:
$foobar = array($foo, $bar);
这将生成如下数组:
$foobar[0] = $foo;
$foobar[1] = $bar;
您也可以定义键值:
$foobar = array('foo' => $foo, 'bar' => $bar);
这将生成如下数组:
$foobar['foo'] = $foo;
$foobar['bar'] = $bar;
方括号方法
方括号方法允许直接设置数组的值。例如,要将 $foobar[1] = $foo
,您只需这样做:
$foobar[1] = $foo;
同样,设置键值时也可以这样做:
$foobar['foo'] = $foo;
数组示例
示例 #1
以下示例设置并打印数组:
<?php
$array = array("name" => "Toyota", "type" => "Celica", "colour" => "black", "manufactured" => "1991");
$array2 = array("Toyota", "Celica", "black", "1991");
$array3 = array("name" => "Toyota", "Celica", "colour" => "black", "1991");
print_r($array);
print_r($array2);
print_r($array3);
?>
PHP 输出:
Array
(
[name] => Toyota
[type] => Celica
[colour] => black
[manufactured] => 1991
)
Array
(
[0] => Toyota
[1] => Celica
[2] => black
[3] => 1991
)
Array
(
[name] => Toyota
[0] => Celica
[colour] => black
[1] => 1991
)
HTML 渲染:
Array ( [name] => Toyota [type] => Celica [colour] => black [manufactured] => 1991 )
Array ( [0] => Toyota [1] => Celica [2] => black [3] => 1991 )
Array ( [name] => Toyota [0] => Celica [colour] => black [1] => 1991 )
示例 #2
下面的示例将输出与示例 #1 相同的文本:
<?php
$array['name'] = "Toyota";
$array['type'] = "Celica";
$array['colour'] = "black";
$array['manufactured'] = "1991";
$array2[] = "Toyota";
$array2[] = "Celica";
$array2[] = "black";
$array2[] = "1991";
$array3['name'] = "Toyota";
$array3[] = "Celica";
$array3['colour'] = "black";
$array3[] = "1991";
print_r($array);
print_r($array2);
print_r($array3);
?>
示例 #3
使用示例 #1 和 #2,您现在可以像使用常规变量一样使用数组:
<?php
echo "Manufacturer: {$array['name']} \n";
echo "Brand: <b>{$array2['1']}</b><br />\n";
echo "Colour: <b>".$array3['colour']."</b><br />\n";
echo "Year Manufactured: <b>".$array3[1]."</b><br />\n";
?>
PHP 输出:
Manufacturer: Toyota
Brand: <b>Celica</b><br />
Colour: <b>black</b><br />
Year Manufactured: <b>1991</b><br />
HTML 渲染:
Manufacturer: Toyota
Brand: Celica
Colour: black
Year Manufactured: 1991
多维数组
数组中的元素也可以是数组,从而形成多维数组。以下是一个示例:
<?php
$cars = array(
"car1" => array("make" => "Toyota", "colour" => "Green", "year" => 1999, "engine_cc" => 1998),
"car2" => array("make" => "BMW", "colour" => "RED", "year" => 2005, "engine_cc" => 2400),
"car3" => array("make" => "Renault", "colour" => "White", "year" => 1993, "engine_cc" => 1395),
);
?>
如果使用以下代码:
<?php
echo "$cars['car1']['make']<br>";
echo "$cars['car3']['engine_cc']";
?>
输出将会是:
Toyota
1395
数组函数
PHP 提供了大量的数组操作函数。在实现自己的数组操作之前,请确保该功能未作为 PHP 内置函数存在(可以查阅 PHP 手册中的 Array functions)。
排序
示例:
$array = array("name"=>"Toyota", "type"=>"Celica", "colour"=>"black", "manufactured"=>"1991");
array_multisort($array, SORT_ASC);
var_dump($array);
输出:
array(4) {
["manufactured"]=> string(4) "1991"
["type"]=> string(6) "Celica"
["name"]=> string(6) "Toyota"
["colour"]=> string(5) "black"
}
以下是更多排序函数:
arsort($array);
var_dump($array);
asort($array);
var_dump($array);
sort($array);
var_dump($array);
数组遍历
在不同情况下,您可能需要访问数组的每个元素并对其进行处理。最简单且最常用的方法是使用 foreach
操作符,该操作符会遍历整个数组并逐一处理每个键/值对。如果需要更复杂的遍历方式,可以使用以下函数,这些函数使用数组的内部指针:
reset
- 将内部指针设置为第一个元素并返回该元素prev
- 将内部指针设置为前一个元素并返回该元素current
- 返回当前元素,但不改变内部指针next
- 将内部指针设置为下一个元素并返回该元素each
- 返回当前元素,并将内部指针移到下一个元素end
- 将内部指针设置为最后一个元素并返回该元素
// 使用数组的迭代器反向打印其值
$my_array = array('a', 'b', 'c');
end($my_array);
while ($i = current($my_array)) {
echo $i."\n";
prev($my_array);
}
另一种可能性是定义一个函数,并通过以下函数将其应用于数组的每个元素:
array_walk
- 对每个数组元素应用一个函数array_walk_recursive
- 如果元素本身是数组,则递归遍历该数组
外部链接
Last modified: Thursday, 9 January 2025, 10:12 PM