关于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++的类型定义的严格性和指针也确实有一定的优点。我认为不管是什么语言,数组都是处理数据的最基本工具,所以利用该语言的特性来使用数组是很重要的。