首頁 >後端開發 >PHP問題 >php怎麼取得數組不同元素個數

php怎麼取得數組不同元素個數

PHPz
PHPz原創
2023-04-26 10:21:54682瀏覽

在PHP開發中,操作陣列是非常常見的一種操作。其中,取得數組中不同元素的數量也是有著很大的實用性。本文將介紹幾種取得陣列中不同元素個數的方法。

一、使用array_count_values函數

array_count_values函數是PHP中用來計算數組中所有值出現的次數的函數。它本身的回傳值是一個關聯數組,其鍵值是數組中的元素值,其對應的元素值則是該元素值在原始數組中出現的次數。因此,我們可以利用該函數的傳回值來取得陣列中不同元素的個數。

範例如下:

$arr = array(1, 2, 2, 3, 3, 3);
$values = array_count_values($arr);
$count = count($values); //不同元素个数

上述程式碼輸出結果為:3,即陣列中不同元素的個數為3。

二、使用array_unique函數

array_unique函數是PHP中用來移除陣列中重複元素的函數。其傳回值為移除重複元素後的陣列。因此,我們可以先呼叫該函數來取得去重後的數組,再呼叫count函數來取得不同元素個數。

範例如下:

$arr = array(1, 2, 2, 3, 3, 3);
$unique_arr = array_unique($arr);
$count = count($unique_arr); //不同元素个数

上述程式碼輸出結果為:3,即陣列中不同元素的個數為3。

三、使用迴圈遍歷陣列

迴圈遍歷陣列也是取得陣列中不同元素個數的一種方法。我們可以定義一個數組來記錄已經訪問過的元素,並在遍歷數組時判斷當前元素是否已經被訪問過,如果是則跳過,否則將其添加到已訪問數組中,並將不同元素計數器加1 。

範例如下:

$arr = array(1, 2, 2, 3, 3, 3);
$visited_arr = array();
$count = 0; //不同元素个数计数器
foreach ($arr as $value) {
    if (!in_array($value, $visited_arr)) { // 判断当前元素是否已经被访问过
        $visited_arr[] = $value;
        $count++;
    }
}

上述程式碼輸出結果為:3,即陣列中不同元素的個數為3。

四、使用array_diff函數

array_diff函數是PHP中計算陣列差集的函數。因此,我們可以利用該函數來取得數組中不同元素的個數。具體做法是:先將原數組去重,再和原數組做差集,去除重複元素,然後呼叫count函數取得不同元素個數。

範例如下:

$arr = array(1, 2, 2, 3, 3, 3);
$unique_arr = array_unique($arr);
$diff_arr = array_diff($arr, $unique_arr);
$count = count($diff_arr); //不同元素个数

上述程式碼輸出結果為:3,即陣列中不同元素的個數為3。

綜上所述,我們介紹了幾種取得陣列中不同元素個數的方法。在實際開發中,可以根據具體情況選擇最適合的方法。

以上是php怎麼取得數組不同元素個數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn