App下載

PHP 數(shù)組長度教程 - 如何獲取數(shù)組大小

喬納森·博森格 2021-08-30 09:27:07 瀏覽數(shù) (4400)
反饋

數(shù)組是 PHP 中一種強大的數(shù)據(jù)類型。知道如何獲取數(shù)組的大小是一項有用的技能。在本文中,我將快速概述數(shù)組的工作原理,然后我將深入研究如何獲取 PHP 數(shù)組的大小。如果您已經(jīng)知道什么是數(shù)組,則可以直接跳到如何獲取數(shù)組大小部分。

PHP 中的數(shù)組是什么?

在我們深入了解數(shù)組大小之前,我們需要確保我們了解數(shù)組是什么。PHP 中的數(shù)組是一種允許存儲多個數(shù)據(jù)的變量類型。

例如,如果您要存儲一個簡單的字符串,您將使用 PHP 字符串類型:

$heading = 'PHP Array Length Tutorial';

但是,如果您想存儲更多的單獨數(shù)據(jù),您可以考慮使用幾個字符串變量。

$heading = 'PHP Array Length Tutorial';
$subheading = 'How to get an array size';
$author = 'Jonathan Bossenger'

這一切都很好,但是如果您需要存儲更多數(shù)據(jù),并快速調(diào)用代碼中其他地方的任何項目,該怎么辦?這就是數(shù)組派上用場的地方。您仍然可以存儲單個數(shù)據(jù),但使用單個變量。

$post_data = array(
    'PHP Array Length Tutorial',
    'How to get an array size',
    'Jonathan Bossenger'
);

該數(shù)組中的每個項目都可以通過其數(shù)字鍵引用。因此,無需調(diào)用單個變量,您可以通過其數(shù)字鍵引用單個數(shù)組項。

echo $post_data[0];
在 PHP 中,數(shù)組鍵從 0 開始

為了獲得更多控制,數(shù)組還允許您使用字符串定義自己的數(shù)組鍵。

$post_data = array(
    'heading' => 'PHP Array Length Tutorial',
    'subheading' => 'How to get an array size',
    'author' => 'Jonathan Bossenger'
);

這允許您還通過其字符串鍵引用數(shù)組項。

echo $post_data['heading'];

您還可以使用類似于 JavaScript 的新短數(shù)組表示法定義數(shù)組:

$post_data = [
    'heading' => 'PHP Array Length Tutorial',
    'subheading' => 'How to get an array size',
    'author' => 'Jonathan Bossenger'
];

數(shù)組也可以嵌套,形成更復(fù)雜的數(shù)組變量:

$post_data = [
    'heading' => 'PHP Array Length Tutorial',
    'subheading' => 'How to get an array size',
    'author' => [
        'name' => 'Jonathan Bossenger',
        'twitter' => 'jon_bossenger',
    ]
];

而且,您可以使用其嵌套鍵調(diào)用特定的數(shù)組值:

echo $post_data['author']['name'];

但是,如果您發(fā)現(xiàn)自己經(jīng)常這樣做,您可能需要考慮使用對象而不是數(shù)組。

如果您需要快速收集并在一個函數(shù)中使用不同的相關(guān)數(shù)據(jù),或者將這些數(shù)據(jù)傳遞給另一個函數(shù),則數(shù)組很有用。

通過將這些數(shù)據(jù)放入數(shù)組中,您定義的變量更少,并且可以使您的代碼在以后更易于閱讀和理解。將單個數(shù)組變量傳遞給另一個函數(shù)也比傳遞多個字符串容易得多。

$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 中獲取數(shù)組的大小

通常,當(dāng)我們談?wù)摂?shù)組的大小時,我們談?wù)摰氖窃摂?shù)組中存在多少個元素。有兩種常用的方法來獲取數(shù)組的大小。

最流行的方法是使用 PHP count()函數(shù)。正如函數(shù)名稱所說,count()將返回數(shù)組元素的計數(shù)。但是我們?nèi)绾问褂胏ount()函數(shù)取決于數(shù)組結(jié)構(gòu)。

讓我們看看我們之前定義的兩個示例數(shù)組。

$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)結(jié)果為 3。這是因為該數(shù)組中有 3 個元素:'heading'、'subheading' 和 'author'。但是我們的第二個嵌套數(shù)組示例呢?

$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。這是因為默認(rèn)情況下,該count()函數(shù)只計算頂級數(shù)組元素。

如果你看一下函數(shù)定義,你會發(fā)現(xiàn)它接受兩個參數(shù)——要計算的數(shù)組和一個mode整數(shù)。該模式的默認(rèn)值是預(yù)定義的常量COUNT_NORMAL,它告訴函數(shù)只計算頂級數(shù)組元素。

如果我們COUNT_RECURSIVE改為傳遞預(yù)定義的常量,它將運行所有級別的嵌套,并對其進行計數(shù)。

$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);

現(xiàn)在,count($post_data, COUNT_RECURSIVE)正如預(yù)期的那樣,結(jié)果將是 5。

“但是等等!”,我聽到你哭了?!澳闾岬接辛硪环N方式?”。

是的,您可以使用的另一個函數(shù)是sizeof()。然而,sizeof()只是 的別名count(),許多人認(rèn)為(正確地如此)sizeof()將返回數(shù)組的內(nèi)存使用情況。

因此最好堅持使用count(),這是一個更適合您正在做的事情的名稱 - 計算數(shù)組中的元素。

謝謝閱讀!我希望您現(xiàn)在對如何在 PHP 中查找數(shù)組的大小有了更好的了解。


PHP

0 人點贊