PHP 数组:关联、多维

什么是 PHP 数组?

PHP 数组是一种在单个变量中存储多条相关数据的变量。

把数组想象成一盒里面有插槽的巧克力。

盒子代表数组本身,而包含巧克力的空间代表存储在数组中的值。

下图说明了上述语法。

数值数组

数字数组使用数字作为访问键。

访问键是对数组变量中内存槽的引用。

每当我们想要读取或为数组元素分配新值时,就会使用访问键。

以下是在 php 中创建数字数组的语法。

数组示例

<?php
$variable_name[n] = value;
?>

Or

<?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 数组

每部电影都有一个索引号,用于检索或修改其值。观察以下代码:

<?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"];
?>

这里,

PHP 数组

输出:

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);
?>

这里,

PHP 数组

输出:

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 数组: Opera职权范围

Opera器 姓名 描述 怎么办呢 输出
x+y 工会 合并两个数组的元素
<?php
$x = array('id' => 1);

$y = array('value' => 10);

$z = $x + $y;
?>
数组([id] => 1 [值] => 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 函数用于统计 php 数组包含的元素数量。以下代码展示了其实现。

<?php
$lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith");
echo count($lecturers);
?>

输出:

3

is_ray 函数

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 )

各种

本篇 function 用于使用值对数组进行排序。以下示例说明了其用法。

<?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 等。