當前位置: 首頁> 最新文章列表> 使用array_flip() 逆轉值與鍵後統計再處理

使用array_flip() 逆轉值與鍵後統計再處理

M66 2025-06-07

在PHP 中, array_flip()array_count_values()是兩個常用的函數。 array_flip()用於交換數組的鍵和值,而array_count_values()用於統計數組中所有值的出現次數。通過將這兩個函數結合起來使用,可以方便地處理數組數據,實現更複雜的數據操作。

1. array_flip()函數

array_flip()函數可以將一個數組的鍵和值交換。也就是說,數組中的鍵變成值,而值變成鍵。需要注意的是,數組中的值必須是唯一的,否則會丟失數據。

 $array = [
    'apple' => 5,
    'banana' => 3,
    'orange' => 4,
];

$flippedArray = array_flip($array);
print_r($flippedArray);

輸出:

 Array
(
    [5] => apple
    [3] => banana
    [4] => orange
)

在這個例子中, array_flip()函數將原數組中的鍵值互換,得到一個新的數組,其中原來的值變成了新的鍵。

2. array_count_values()函數

array_count_values()函數統計數組中每個值的出現次數。它返回一個關聯數組,其中鍵是數組中的值,值是這些值在數組中出現的次數。

 $array = ['apple', 'banana', 'orange', 'apple', 'banana', 'apple'];

$countedArray = array_count_values($array);
print_r($countedArray);

輸出:

 Array
(
    [apple] => 3
    [banana] => 2
    [orange] => 1
)

這個例子中, array_count_values()統計了數組中每個水果的出現次數,並將結果作為一個新數組返回。

3. 結合使用array_flip()array_count_values()

假設你有一個數組,其中包含了商品名稱及其價格。你希望通過array_flip()逆轉該數組,然後統計每個價格的出現次數。可以按照以下步驟進行操作:

 $array = [
    'apple' => 5,
    'banana' => 3,
    'orange' => 5,
    'grape' => 3,
    'peach' => 4,
];

$flippedArray = array_flip($array);
print_r($flippedArray);

// 統計價格的出現次數
$countedArray = array_count_values($flippedArray);
print_r($countedArray);

輸出:

 Flipped Array:
Array
(
    [5] => apple
    [3] => banana
    [4] => peach
)

Counted Array:
Array
(
    [apple] => 1
    [banana] => 1
    [peach] => 1
)

4. 完整示例:從URL 獲取數據並處理

假設我們有一個包含多個URL 的數組,想要提取每個URL 的域名並統計每個域名的出現次數。我們可以首先使用array_flip()交換數組的鍵和值,然後用array_count_values()來統計每個域名出現的頻率。

 $urls = [
    'https://www.m66.net/product1',
    'https://www.m66.net/product2',
    'https://www.m66.net/product3',
    'https://www.example.net/product1',
    'https://www.m66.net/product4',
];

// 提取域名
$domains = array_map(function($url) {
    return parse_url($url, PHP_URL_HOST);
}, $urls);

// 逆轉數組
$flippedDomains = array_flip($domains);
print_r($flippedDomains);

// 統計域名出現次數
$countedDomains = array_count_values($flippedDomains);
print_r($countedDomains);

輸出:

 Flipped Domains:
Array
(
    [m66.net] => https://www.m66.net/product1
    [example.net] => https://www.example.net/product1
)

Counted Domains:
Array
(
    [m66.net] => 4
    [example.net] => 1
)

在這個例子中, array_flip()函數被用於交換域名和URL,之後我們通過array_count_values()統計每個域名出現的次數,結果顯示m66.net域名出現了4 次,而example.net域名只出現了1 次。

希望這篇文章能幫助您更好地理解如何結合使用array_flip()array_count_values()來處理數組數據。通過這些函數的組合,您可以輕鬆地逆轉數組中的鍵值對,並統計數據的頻率,為進一步的數據分析和處理提供支持。