数组是 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 个元素:heading、subheading 和 author。但是我们的第二个嵌套数组示例呢?

$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 中查找数组的大小有了更好的了解。

原文:PHP Array Length Tutorial – How to Get an Array Size,作者:Jonathan Bossenger