关于PHP数组的内容

首先

从一年前开始,我开始学习PHP,为了转向Web领域,这之前的近十年间,我主要使用C语言和C++进行数值计算和图像处理等工作。学习PHP的初期,我最初感到新鲜的是它处理数组的自由度。因此,这次我主要总结了我对PHP数组的已知内容,以便给初学者们简单了解(尽管与我以前写过的博客内容几乎没有变化)。

初始化

当初始化一个空数组时

$data = array();

假设。对于熟悉PHP的人来说,这可能显得理所当然,但在C语言中不是这样的。

int data[10];

在使用中,必须首先指定数据类型和大小。当需要调整大小时,可以使用指针进行声明,并且稍后可以使用malloc来分配所需的空间量。但是,必须稍后使用free来释放空间,并且还有许多处理上的困难。但是,在PHP中,这一切都不是必要的(如果是C++中的vector,则不需要最后释放空间也没关系)。

当初始化时需要将值赋予。

$data = array(2, 3, 5);

请将其设置为这样。
另外,请注意从PHP5.4开始。

$data = [];
$data = [2, 3, 5];

也可以用类似的方式进行初始化。

添加要素

$data[3] = 7;

虽然当然也可以使用常规的方式,但即使当前无法确定元素数量

$data[] = 7;

在C++的向量中,您甚至可以像這樣輕鬆地添加元素。

data.push(7);

我之前使用了类似的方法,不过在PHP中可以使用array_push函数来实现。

array_push($data, 7);

我平时喜欢使用[]=,因为这样比较方便,可以做到像这样的效果。

删除的元素

我们会使用一个名为array_splice的函数。

$data = [2, 3, 5, 7];
array_splice($data, 1, 2);

假设$data[1]开始,删除了两个元素。
上述操作的结果是。

echo $data[0]; //2
echo $data[1]; //7

這是一個選項。

在删除数组元素的函数中,还有一种称为unset的方法。例如,当想要从数组$data中删除$data[1]时,可以使用unset。

$data = [2, 3, 5, 7];
unset($data[1]);

假设这样。然而,这不会影响索引,所以结果是一样的。

echo $data[0]; //2
echo $data[2]; //5
echo $data[3]; //7

删除元素后,按照正确的顺序重新排列索引,如果访问$data[1]将会出现错误。

array_values($data);

需要假设。

关联列表

在PHP中,可以在数组的元素中使用除了整数以外的类型。换句话说,可以与关联数组几乎相同地使用。
例如,就像这样。

$data['Tokyo']     = 'Japan';
$data['Vientiane'] = 'Laos';
$data['Manila']    = 'Philippines';

还可以把数组的值变成一个数组,形成类似多维数组的结构。

数组使用的函数

迄今为止已经出现了一些,但PHP中有许多方便的函数用于数组操作。例如,

$data = [2, 3, 5, 7];
echo count($data);  //4

这是一个代表例,用来返回数组元素的数量。
另外还有一个名为in_array的函数,用于检查数组中是否包含特定元素。

$data = [2, 3, 5, 7];
echo in_array(3, $data);  //true
echo in_array(4, $data);  //false

因为还有很多其他选项,所以如果想要了解有哪些物品的人,请参考PHP官方网站页面。

总结

在我写到这里时,与只知道C语言和C++的自己相比,可能会觉得“PHP的数组就像是vector和map的优点结合在一起,真厉害。”然而,在方便之中也要意识到它在干什么,否则可能会变得毫无头绪,所以在使用时要小心。反过来说,C和C++的类型定义的严格性和指针也确实有一定的优点。我认为不管是什么语言,数组都是处理数据的最基本工具,所以利用该语言的特性来使用数组是很重要的。