数组是 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'
);
该数组中的每个项目都可以通过其数字键引用。因此,无需调用单个变量,你可以通过其数字键引用单个数组项。
为了获得更多控制,数组还允许你使用字符串定义自己的数组键。
$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