數(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ù)組的大小有了更好的了解。