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