PHP 数组长度教程 - 如何获取数组大小

2021-08-30 09:27:07 浏览数 (4273)

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