當前位置: 首頁> 最新文章列表> array_flip() 搭配array_map() 轉換數據結構

array_flip() 搭配array_map() 轉換數據結構

M66 2025-05-14

在PHP 中,數組是一個非常重要的數據結構。對於數組的操作,PHP 提供了很多內置的函數,其中array_flip()array_map()是兩個常見的函數。通過這兩個函數的組合,我們可以高效地轉換數組的數據結構。本文將詳細介紹如何結合使用array_flip()array_map()來實現這一目的。

什麼是array_flip()

array_flip()函數是PHP 的一個內置函數,它的作用是交換數組的鍵和值。這個函數非常適合用來翻轉一個數組的結構。函數的定義如下:

 array_flip(array $array): array
  • 參數:接受一個數組$array

  • 返回值:返回一個新的數組,數組中的鍵和值被交換。

示例:

 $array = ['apple' => 'fruit', 'carrot' => 'vegetable', 'banana' => 'fruit'];
$flipped = array_flip($array);
print_r($flipped);

輸出:

 Array
(
    [fruit] => banana
    [vegetable] => carrot
)

可以看到, array_flip()將數組的值作為新的鍵,原來的鍵作為新的值。

什麼是array_map()

array_map()函數用於對數組中的每個元素應用一個回調函數,並返回一個新數組。它的定義如下:

 array_map(callable $callback, array $array): array
  • 參數

    • $callback :應用於數組每個元素的回調函數。

    • $array :需要操作的數組。

  • 返回值:返回一個包含應用回調函數後的數組。

示例:

 $array = [1, 2, 3, 4, 5];
$squared = array_map(function($item) {
    return $item * $item;
}, $array);

print_r($squared);

輸出:

 Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
    [4] => 25
)

結合使用array_flip()array_map()實現數組結構轉換

array_flip()array_map()的結合使用可以幫助我們將數組的結構進行更複雜的轉換。例如,我們可能需要將一個包含鍵值對的數組的值轉換為鍵,並應用一些處理函數。

示例場景:

假設我們有一個數組,其中包含商品名和其價格。我們希望交換鍵和值,並且對價格應用一個折扣(比如打9折)。

代碼示例:

 $array = [
    'apple' => 100,
    'banana' => 200,
    'cherry' => 300
];

// 使用 array_flip() 將值作為鍵,鍵作為值
$flipped = array_flip($array);

// 使用 array_map() 為每個價格打9折
$discounted = array_map(function($price) {
    return $price * 0.9;
}, $flipped);

print_r($discounted);

輸出:

 Array
(
    [100] => 90
    [200] => 180
    [300] => 270
)

在這個例子中, array_flip()首先將商品價格作為新的鍵,然後array_map()函數對每個價格進行打9折處理,返回了新的數組。

應用場景

  1. 反轉鍵值對後進行映射處理:如果你有一個包含鍵值對的數組,可以先使用array_flip()翻轉數組,再通過array_map()處理值,最後得到新的結構。

  2. 進行批量數據處理:例如,批量計算折扣價格、轉換文本、修改數組中的數字格式等。

注意事項

  1. 鍵的唯一性:使用array_flip()時,原數組中的值必須是唯一的,否則會丟失某些數據,因為相同的值會被覆蓋。

  2. 回調函數:在使用array_map()時,回調函數會應用於數組的每個元素,確保回調函數的邏輯適應你的需求。

希望這篇文章能夠幫助你理解如何結合使用array_flip()array_map()來轉換PHP 數組的數據結構。如果有任何問題,歡迎隨時提出!