数组是PHP中一个强大的数据类型。知道如何快速确定一个数组的大小是一项有用的技能。
在这篇文章中,我将给你一个关于数组工作原理的快速概述,然后我将深入探讨如何获得PHP数组的大小。
如果你已经知道什么是数组,你可以直接跳到**如何获得数组的大小?**部分。
什么是PHP中的数组?
在我们深入讨论获取数组大小之前,我们需要确保我们了解什么是数组。在PHP中,数组是一种变量类型,允许你存储多于一个数据。
例如,如果你要存储一个简单的字符串,你会使用一个PHP字符串类型:
$heading = 'PHP Array Length Tutorial';
但是,如果你想存储更多的独立数据,你可以考虑使用几个字符串变量:
$heading = 'PHP Array Length Tutorial';
$subheading = 'How to get an array size';
$author = 'Jonathan Bossenger'
这一切都很好,但如果你需要存储更多的数据,并在代码的其他地方快速调用其中的任何一项,怎么办?这时,数组就派上用场了。你仍然可以存储各个数据片段,但使用一个单一的变量:
$post_data = array(
'PHP Array Length Tutorial',
'How to get an array size',
'Jonathan Bossenger'
);
数组中的每个项目都可以通过其数字键来引用。因此,你可以通过数字键来引用一个数组项目,而不是需要调用单个变量:
echo $post_data[0];
在PHP中,数组键从0开始
为了更多的控制,数组还允许你用一个字符串来定义自己的数组键:
$post_data = array(
'heading' => 'PHP Array Length Tutorial',
'subheading' => 'How to get an array size',
'author' => 'Jonathan Bossenger'
);
这使得你也可以通过其字符串键来引用数组项:
echo $post_data['heading'];
你也可以使用新的短数组符号来定义数组,这与JavaScript相似:
$post_data = [
'heading' => 'PHP Array Length Tutorial',
'subheading' => 'How to get an array size',
'author' => 'Jonathan Bossenger'
];
数组也可以被嵌套,形成更复杂的数组变量:
$post_data = [
'heading' => 'PHP Array Length Tutorial',
'subheading' => 'How to get an array size',
'author' => [
'name' => 'Jonathan Bossenger',
'twitter' => 'jon_bossenger',
]
];
而且,你可以使用其嵌套的键来调用一个特定的数组值:
echo $post_data['author']['name'];
然而,如果你发现自己经常这样做,你可能要考虑使用对象而不是数组。
如果你需要快速收集然后在一个函数中使用不同的相关数据,或者将这些数据传递给另一个函数,那么数组就很有用。
把这些数据放到数组中,你定义的变量就少了,这可以使你的代码在以后更容易阅读和理解。将一个数组变量传递给另一个函数也比传递多个字符串要容易得多:
$post_data = [
'heading' => 'PHP Array Length Tutorial',
'subheading' => 'How to get an array size',
'author' => [
'name' => 'Jonathan Bossenger',
'twitter' => 'jon_bossenger',
]
];
$filtered_post_data = filter_post_data($post_data)
如何在PHP中获得一个数组的大小
通常当我们谈论一个数组的大小时,我们谈论的是这个数组中存在多少个元素。有两种常见的方法来获取数组的大小。
最流行的方法是使用PHP的count()函数。正如函数名称所说,count() ,将返回一个数组中元素的数量。但是我们如何使用count() 函数取决于数组的结构。
让我们看看我们前面定义的两个数组的例子:
$post_data = array(
'heading' => 'PHP Array Length Tutorial',
'subheading' => 'How to get an array size',
'author' => 'Jonathan Bossenger'
);
echo count($post_data);
在这个例子中,count($post_data) ,结果是3。这是因为该数组中有3个元素。标题"、"副标题 "和 "作者"。但是,我们的第二个嵌套数组的例子呢?
$post_data = [
'heading' => 'PHP Array Length Tutorial',
'subheading' => 'How to get an array size',
'author' => [
'name' => 'Jonathan Bossenger',
'twitter' => 'jon_bossenger',
]
];
echo count($post_data);
信不信由你,在这个例子中,count($post_data) 也会返回3。这是因为默认情况下,count() 函数只计算顶层的数组元素。
如果你看一下函数的定义,你会发现它接受两个参数--要计算的数组,和一个mode 的整数。该模式的默认值是预定义常数COUNT_NORMAL ,它告诉函数只计算顶层的数组元素。
如果我们传递预定义的常数COUNT_RECURSIVE ,它将运行所有级别的嵌套,并计算这些嵌套:
$post_data = [
'heading' => 'PHP Array Length Tutorial',
'subheading' => 'How to get an array size',
'author' => [
'name' => 'Jonathan Bossenger',
'twitter' => 'jon_bossenger',
]
];
echo count($post_data, COUNT_RECURSIVE);
现在,count($post_data, COUNT_RECURSIVE) 的结果将是,正如预期的那样,5。
"但是等等!",我听到你在喊。"你说过还有另一种方法?"。
嗯,是的,你可以使用的另一个函数是sizeof()。然而,sizeof() 只是count() 的一个别名,许多人认为(这是正确的),sizeof() 会返回一个数组的内存使用量。
因此,最好坚持使用count() ,这个名字更适合你正在做的事情--计算一个数组中的元素。
谢谢你的阅读!我希望你现在对如何在PHP中查找数组的大小有了更好的理解。