PHP 数组:关联数组、多维数组
什么是 PHP 数组?
PHP 数组是一个变量,可以在一个变量中存储多个相关的项。
可以将数组想象成一个带有许多插槽的巧克力盒子。
盒子本身代表数组,而装有巧克力的格子代表数组中存储的值。
下图说明了上述语法。
数字数组
数字数组使用数字作为访问键。
访问键是数组变量中内存槽的引用。
每当我们想读取或为数组元素分配新值时,都会使用访问键。
下面是 php 中创建数字数组的语法。
数组示例
<?php $variable_name[n] = value; ?>
或者
<?php $variable_name = array(n => value, …); ?>
此处,
- “$variable_name…” 是变量的名称
- “[n]” 是元素的访问索引号
- “value” 是分配给数组元素的那个值。
现在让我们来看一个数字数组的例子。
假设我们要将 5 部电影存储在数组变量中。
我们可以使用下面的示例来完成这项工作。
<?php $movie[0] = 'Shaolin Monk'; $movie[1] = 'Drunken Master'; $movie[2] = 'American Ninja'; $movie[3] = 'Once upon a time in China'; $movie[4] = 'Replacement Killers'; ?>
此处,
每部电影都给出了一个索引号,用于检索或修改其值。请观察以下代码:
<?php $movie[0]="Shaolin Monk"; $movie[1]="Drunken Master"; $movie[2]="American Ninja"; $movie[3]="Once upon a time in China"; $movie[4]="Replacement Killers"; echo $movie[3]; $movie[3] = " Eastern Condors"; echo $movie[3]; ?>
输出
Once upon a time in China Eastern Condors
从上面的例子可以看出,当处理多个相同性质的值时,在 PHP 中使用数组非常简单且灵活。
或者,也可以使用以下代码创建上述数组变量。
<?php $movie = array(0 => "Shaolin Monk", 1 => "Drunken Master", 2 => "American Ninja", 3 => "Once upon a time in China", 4 =>"Replacement Killers" ); echo $movie[4]; ?>
输出
Replacement Killers
PHP 关联数组
关联数组与数字数组的区别在于,关联数组使用描述性名称作为 ID 键。
下面是 php 中创建关联数组的语法。
<?php $variable_name['key_name'] = value; $variable_name = array('keyname' => value); ?>
此处,
- “$variable_name…” 是变量的名称
- “[‘key_name’]” 是元素的访问索引号
- “value” 是分配给数组元素的那个值。
假设我们有一群人,我们想根据他们的名字为每个人分配性别。
我们可以使用关联数组来做到这一点。下面的代码可以帮助我们实现。
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); print_r($persons); echo ""; echo "Mary is a " . $persons["Mary"]; ?>
此处,
输出
Array ( [Mary] => Female [John] => Male [Mirriam] => Female ) Mary is a Female
当从数据库检索数据时,关联数组也非常有用。
字段名称用作 ID 键。
PHP 多维数组
这些是包含其他嵌套数组的数组。
多维数组的优点是它们允许我们将相关数据分组。
现在让我们看一个实现 PHP 多维数组的实际示例。
下表显示了按类别划分的电影列表。
电影标题 | 类别 |
---|---|
粉红豹 | 喜剧 |
约翰·英格利什 | 喜剧 |
虎胆龙威 | 行动 |
敢死队 | 行动 |
指环王 | 史诗 |
罗密欧与朱丽叶 | 浪漫 |
眼不见,心不烦 | 喜剧 |
上述信息可以表示为多维数组。以下代码显示了实现。
<?php $movies =array( "comedy" => array("Pink Panther", "John English", "See no evil hear no evil"), "action" => array("Die Hard", "Expendables"), "epic" => array("The Lord of the rings"), "Romance" => array("Romeo and Juliet") ); print_r($movies); ?>
此处,
输出
Array ( [comedy] => Array ( [0] => Pink Panther [1] => John English [2] => See no evil hear no evil ) [action] => Array ( [0] => Die Hard [1] => Expendables ) [epic] => Array ( [0] => The Lord of the rings ) [Romance] => Array ( [0] => Romeo and Juliet ) )
定义相同数组的另一种方法如下:
<?php $film=array( "comedy" => array( 0 => "Pink Panther", 1 => "john English", 2 => "See no evil hear no evil" ), "action" => array ( 0 => "Die Hard", 1 => "Expendables" ), "epic" => array ( 0 => "The Lord of the rings" ), "Romance" => array ( 0 => "Romeo and Juliet" ) ); echo $film["comedy"][0]; ?>
输出
Pink Panther
注意:电影数字数组已嵌套在类别关联数组中
PHP 数组:运算符
运算符 | 名称 | 描述 | 如何操作 | 输出 |
---|---|---|---|---|
x + y | 联合 | 组合来自两个数组的元素 |
<?php $x = array('id' => 1); $y = array('value' => 10); $z = $x + $y; ?> |
Array([id] => 1 [value] => 10) |
X == y | 相等 | 比较两个数组,如果它们相等则返回 true。 |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x == $y) { echo "true"; } else { echo "false"; } ?> |
True 或 1 |
X === y | 相同 | 比较值和数据类型 |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x === $y) { echo "true"; } else { echo "false"; } ?> |
False 或 0 |
X != y, x <> y | 不相等 |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x != $y) { echo "true"; } else { echo "false"; } ?> |
False 或 0 | |
X !== y | 不相同 |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x !== $y) { echo "true"; } else { echo "false"; } ?> |
True 或 1 |
PHP 数组函数
count 函数
count 函数用于计算 php 数组中的元素数量。以下代码显示了实现。
<?php $lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith"); echo count($lecturers); ?>
输出
3
is_array 函数
is_array 函数用于确定一个变量是否是一个数组。现在让我们看一个实现 is_array 函数的例子。
<?php $lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith"); echo is_array($lecturers); ?>
输出
1
排序
此函数用于按值对数组进行排序。
如果值是字母数字的,它会按字母顺序排序。
如果值是数字的,它会按升序排序。
它会删除现有的访问键并添加新的数字键。
此函数的输出是数字数组
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); sort($persons); print_r($persons); ?>
输出
Array ( [0] => Female [1] => Female [2] => Male )
ksort
此函数用于使用键对数组进行排序。以下示例说明了其用法。
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); ksort($persons); print_r($persons); ?>
输出
Array ( [John] => Male [Mary] => Female [Mirriam] => Female )
asort
此函数用于使用值对数组进行排序。以下示例说明了其用法。
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); asort($persons); print_r($persons); ?>
输出
Array ( [Mary] => Female [Mirriam] => Female [John] => Male )
为什么使用数组?
- 数组的内容可以扩展,
- 数组很容易帮助将服务器登录详细信息等相关信息分组在一起
- 数组有助于编写更简洁的代码。
摘要
- 数组是特殊的变量,能够存储多个值。
- 数组具有灵活性,可以轻松扩展以容纳更多值
- 数字数组使用数字作为数组键
- PHP 关联数组使用描述性名称作为数组键
- 多维数组包含其他数组。
- count 函数用于获取存储在数组中的项目数量
- is_array 函数用于确定一个变量是否是有效的数组。
- 其他数组函数包括 sort、ksort、assort 等。