目錄
1. 使用array_count_values 函數
2. 使用 array_unique 函數和計數函數
3. 使用 array_keys 函數
首頁 後端開發 PHP問題 如何在 PHP 中查詢數組重複的值

如何在 PHP 中查詢數組重複的值

Apr 27, 2023 pm 04:38 PM

在 PHP 中,如果我們需要將一些元素保存在一個清單中,最自然的想法就是使用陣列。數組可以輕鬆地儲存大量元素並支援一系列強大的操作。但是,當我們的陣列中包含重複的元素時,我們可能需要進行一些額外的操作以查找這些重複值。本文將介紹如何在 PHP 中查詢陣列重複的值。

1. 使用array_count_values 函數

PHP 的array_count_values 函數可以計算數組中每個值的出現次數,並傳回一個新的數組,其中鍵是原始數組中的值,值是該值在原始數組中出現的次數。因此,我們可以使用該函數來尋找重複的值。以下是一個簡單的範例:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$counts = array_count_values($numbers);
$repeats = array();
foreach ($counts as $value => $count) {
    if ($count > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);
登入後複製

輸出結果:

Array
(
    [0] => 1
    [1] => 2
)
登入後複製
登入後複製
登入後複製

在上面的範例中,我們先定義了一個包含重複值的陣列 $numbers。我們接著呼叫了 array_count_values 函數來計算每個值的出現次數。輸出結果是一個包含兩個鍵值對的陣列,其中鍵是值,值是該值出現的次數。

我們接著使用 foreach 迴圈遍歷該數組,並檢查每個值的出現次數是否大於 1。如果是,則將該值加到另一個陣列 $repeats 中。最後,我們使用 print_r 函數將 $repeats 陣列列印到螢幕上,以顯示重複的值。

2. 使用 array_unique 函數和計數函數

另一種尋找陣列重複值的方法是使用 array_unique 函數和計數函數。 array_unique 函數傳回一個去重後的數組,而計數函數則可以統計每個值在數組中出現的次數。因此,我們可以使用這兩個函數來尋找重複值。以下是一個例子:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$unique = array_unique($numbers);
$counts = array_count_values($numbers);
$repeats = array();
foreach ($unique as $value) {
    if ($counts[$value] > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);
登入後複製

輸出結果與前面的範例相同:

Array
(
    [0] => 1
    [1] => 2
)
登入後複製
登入後複製
登入後複製

在上面的範例中,我們首先使用array_unique 函數將$numbers 陣列中的重複值移除,並得到一個不包含重複值的新數組$unique。然後,我們使用 array_count_values 函數計算出原始陣列中每個值的出現次數。

接下來,我們使用 foreach 迴圈遍歷 $unique 數組,並使用計數函數來檢查該值在原始數組中出現的次數是否大於 1。如果是,則將該值新增至新陣列 $repeats 中,最後將 $repeats 陣列輸出到螢幕上以顯示重複的值。

3. 使用 array_keys 函數

另一種尋找陣列重複值的方法是使用 array_keys 函數。這個函數可以傳回一個包含指定值的所有鍵的陣列。因此,如果我們使用這個函數來找出重複值,得到的陣列的長度就是重複值的數量。以下是一個例子:

$numbers = array(1, 2, 3, 2, 4, 1, 5, 2);
$repeats = array();
foreach (array_unique($numbers) as $value) {
    $keys = array_keys($numbers, $value);
    if (count($keys) > 1) {
        $repeats[] = $value;
    }
}
print_r($repeats);
登入後複製

輸出結果也是相同的:

Array
(
    [0] => 1
    [1] => 2
)
登入後複製
登入後複製
登入後複製

在上面的範例中,我們首先使用array_unique 函數將$numbers 陣列中的重複值移除,並得到一個不包含重複值的新陣列。然後,我們使用 foreach 迴圈遍歷該數組,並使用 array_keys 函數來查找原始數組中包含該值的所有鍵。如果找到的鍵的數量大於 1,則將該值新增至新陣列 $repeats 中。最後,我們將 $repeats 陣列輸出到螢幕上以顯示重複的值。

總結

以上是查詢 PHP 陣列重複值的三種方法。每種方法的執行效率略有不同,但這些方法都可以有效地找到重複的值。透過學習這些方法,您可以更好地掌握 PHP 中數組操作的技巧,並且可以在您的專案中更輕鬆地處理數組中的重複元素。

以上是如何在 PHP 中查詢數組重複的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)