摘要:一般情況下,使用可以直接統(tǒng)計(jì)數(shù)組的元素個數(shù)但是遇到二位數(shù)組的時候,我們想統(tǒng)計(jì)第二層的元素個數(shù),這個時候可以使用函數(shù)的第二個參數(shù),統(tǒng)計(jì)一維的所有元素,循環(huán)統(tǒng)計(jì)遍歷元素在的時候,函數(shù)會循環(huán)統(tǒng)計(jì)元素的個數(shù),如果元素是個數(shù)組則數(shù)量會總數(shù)會增加元素?cái)?shù)
一般情況下,使用count可以直接統(tǒng)計(jì)數(shù)組的元素個數(shù)
$arr = [
"a", "b",
];
echo count($arr);//2
但是遇到二位數(shù)組的時候,我們想統(tǒng)計(jì)第二層的元素個數(shù),這個時候可以使用count函數(shù)的第二個參數(shù),
count($arr, $mode = 0);$mode(0:統(tǒng)計(jì)一維的所有元素,1:循環(huán)統(tǒng)計(jì)遍歷元素)
在$mode=1的時候,count函數(shù)會循環(huán)統(tǒng)計(jì)元素的個數(shù),如果元素$a是個數(shù)組則數(shù)量會總數(shù)會增加$a元素?cái)?shù)加1;
$arr = [
"a" => "b", "c" => [ "d", ],
];
echo count($arr, 1);//3("b",["d"],"d")
只要二維數(shù)組有規(guī)律,則可以很方便的統(tǒng)計(jì)二維的元素個數(shù)
$arr = [
"a" => [ "d", "e", ], "c" => [ "d", "g", ],
];
echo count($arr, 1) - count($arr);//4
使用array_map也可以
$arrCount = 0;
$countFun = function($a) use(&$arrCount) {
$arrCount += count($a); return $arrCount;
};
array_map($countFun,$arr);
echo $arrCount;
記住$arrCount一定要引用傳值
如果要統(tǒng)計(jì)三維數(shù)組的元素個數(shù)
$arr = [
"a" => [ "b" => [ "d", "e", "g", ], ], "c" => [ "d" => [ "d", "g", ], ],
];
$arrCount = 0;
$countFun = function($a) use(&$arrCount) {
$arrCount += count($a, 1) - count($a); return $arrCount;
};
array_map($countFun,$arr);
echo $arrCount;
如果要統(tǒng)計(jì)四維數(shù)組的元素個數(shù)
$arr = [
"a" => [ "b" => [ "d" => [ "e", "g", ], ], ], "c" => [ "d" => [ "d" => [ "e", "g", "f" ], ], ],
];
$arrCount = 0;
$napFun = function($a) use(&$arrCount) {
$countFun = function($a) use(&$arrCount) { $arrCount += count($a, 1) - count($a); return $arrCount; }; array_map($countFun,$a); return $arrCount;
};
array_map($napFun,$arr);
echo $arrCount;
如果是統(tǒng)計(jì)3維或更高維度的建議使用遞歸的方法
$arr = [
"a" => [ "b" => [ "d" => [ "e", "g", ], ], ], "c" => [ "d" => [ "d" => [ "e", "g", "f" ], ], ],
];
function arrCount($arr, &$arrCount, $level){
if(0 === $level){ $arrCount += count($arr); print_r($arr); }else{ $level--; foreach($arr as $a){ arrCount($a, $arrCount, $level); } }
}
$count = 0;
$level = 3;
arrCount($arr,$count,$level);
echo $count;
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/31063.html
小編寫這篇文章的主要目的,就是給大家來做一個詳細(xì)的介紹,介紹關(guān)于Python Numpy的一些知識,比如在面向數(shù)組編程的時候,我們需要怎么進(jìn)行操作,下面就給大家詳細(xì)解答下。 數(shù)組編程 使用Numpy數(shù)組可以使你利用簡單的數(shù)組表達(dá)式完成多項(xiàng)數(shù)據(jù)操作任務(wù),而不需要編寫大量的循環(huán),這個極大的幫助了我們高效的解決問題。 我們都知道向量化的數(shù)組操作比純Python的等價(jià)實(shí)現(xiàn)在速度這一方面快很多,至...
摘要:源碼解讀如果是普通數(shù)組,函數(shù)會調(diào)用函數(shù)實(shí)現(xiàn)其功能的運(yùn)行步驟如下如果當(dāng)前被遞歸訪問的次數(shù)大于,說明重復(fù)遞歸,染回錯誤否則計(jì)算當(dāng)前數(shù)組層數(shù)的數(shù)組元素個數(shù)如果有遞歸參數(shù)選項(xiàng),則繼續(xù)遞歸訪問如果參數(shù)是對象類型,實(shí)現(xiàn)時會先判斷是否被定義。 在PHP編程中,在遍歷數(shù)組的時候經(jīng)常需要先計(jì)算數(shù)組的長度作為循環(huán)結(jié)束的判斷條件,而在PHP里面對數(shù)組的操作是很頻繁的,因此count也算是一個常用函數(shù),下面研...
摘要:像其他變量一樣,使用運(yùn)算符可以改變數(shù)組元素的內(nèi)容。數(shù)組的基本操作定義數(shù)組在中聲明數(shù)組的方式主要有兩種用函數(shù)聲明數(shù)組,直接為數(shù)組元素賦值。 概述要訪問一個變量的內(nèi)容,可以直接使用其名稱。如果該變量是一個數(shù)組,可以使用變量名稱和關(guān)鍵字或索引的組合來訪問其內(nèi)容。 像其他變量一樣,使用運(yùn)算符=可以改變數(shù)組元素的內(nèi)容。數(shù)組單元可以通過 array[key] 語法來訪問。showImg(https...
摘要:輸入兩個數(shù)組輸出返回完成后的數(shù)組在數(shù)組中根據(jù)條件取出一段值,并返回。如果要再用遍歷數(shù)組,必須使用。返回值數(shù)組中當(dāng)前指針位置的鍵值對并向前移動數(shù)組指針。鍵值對被返回為四個單元的數(shù)組,鍵名為,,和。 數(shù)學(xué)函數(shù) 1.abs(): 求絕對值 $abs = abs(-4.2); //4.2 輸入: 數(shù)字 輸出: 絕對值數(shù)字 2.ceil(): 進(jìn)一法取整 echo ceil(9.999); /...
摘要:包的核心是對象。但有個例外,包括對象數(shù)組的元素大小是不同的。序列大小和速度在科學(xué)計(jì)算中尤為重要。例如考慮兩個長度相同的列表中每個元素相乘的情況。此外,編碼所需的工作量隨數(shù)據(jù)維數(shù)的增加而增加。這些信息主要用于高級用戶。 譯者:飛龍 1.1 NumPy 是什么? 原文:What is NumPy? NumPy是Python中用于科學(xué)計(jì)算的基礎(chǔ)包。它是一個Python庫,提供多維數(shù)組對象,各...
閱讀 3872·2021-09-27 13:35
閱讀 1069·2021-09-24 09:48
閱讀 2899·2021-09-22 15:42
閱讀 2339·2021-09-22 15:28
閱讀 3145·2019-08-30 15:43
閱讀 2609·2019-08-30 13:52
閱讀 2971·2019-08-29 12:48
閱讀 1451·2019-08-26 13:55