當前位置: 首頁> 最新文章列表> array_flip() 搭配array_merge() 做鍵值合併

array_flip() 搭配array_merge() 做鍵值合併

M66 2025-06-03

在PHP 中,數組是非常重要的數據結構。我們經常需要對數組進行處理,尤其是在處理鍵值對時。在許多情況下,我們需要將多個數組合併,甚至有時需要進行鍵值的交換。 PHP 提供了array_flip()array_merge()等內置函數來幫助我們實現這些功能。本文將介紹如何使用這兩個函數來實現PHP 中的鍵值合併。

1. array_flip()函數的基本用法

array_flip()函數用於交換數組中的鍵和值。它將數組中的所有鍵作為值,所有的值作為鍵進行反轉。需要注意的是,如果數組中有重複的值,那麼array_flip()會覆蓋前面的鍵。

 <?php
// 示例數組
$array = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry'
];

// 使用 array_flip() 反轉鍵值
$flippedArray = array_flip($array);

// 輸出反轉後的數組
print_r($flippedArray);
?>

輸出:

 Array
(
    [apple] => a
    [banana] => b
    [cherry] => c
)

通過array_flip() ,我們成功地將原數組的鍵和值進行了互換。

2. array_merge()函數的基本用法

array_merge()函數用於合併一個或多個數組。如果數組中有相同的鍵,它會用後面的數組中的值覆蓋前面的值。 array_merge()會重新索引數值數組,保留關聯數組的鍵。

 <?php
// 示例數組
$array1 = [
    'a' => 'apple',
    'b' => 'banana'
];

$array2 = [
    'c' => 'cherry',
    'd' => 'date'
];

// 合併數組
$mergedArray = array_merge($array1, $array2);

// 輸出合併後的數組
print_r($mergedArray);
?>

輸出:

 Array
(
    [a] => apple
    [b] => banana
    [c] => cherry
    [d] => date
)

通過array_merge() ,我們將兩個數組合併為一個數組,且保留了各自的鍵值對。

3. 使用array_flip()array_merge()合併鍵值

現在,我們可以結合使用array_flip()array_merge()來實現更複雜的鍵值合併操作。例如,我們有兩個數組,每個數組的值需要與另一個數組的鍵進行合併。在這種情況下,我們首先使用array_flip()反轉數組,然後再使用array_merge()來合併這兩個反轉後的數組。

 <?php
// 示例數組
$array1 = [
    'a' => 'apple',
    'b' => 'banana'
];

$array2 = [
    'apple' => 'fruit',
    'banana' => 'fruit'
];

// 使用 array_flip() 反轉數組
$flippedArray1 = array_flip($array1);
$flippedArray2 = array_flip($array2);

// 使用 array_merge() 合併反轉後的數組
$mergedArray = array_merge($flippedArray1, $flippedArray2);

// 輸出最終合併後的數組
print_r($mergedArray);
?>

輸出:

 Array
(
    [apple] => a
    [banana] => b
    [fruit] => apple
)

4. 實際應用

有時我們需要根據不同的條件合併數組。在這種情況下,我們可以根據需求自定義如何使用array_flip()array_merge() 。例如,我們可以合併兩個從不同URL 獲取的數據數組(假設原數組中包含URL 的信息)。

 <?php
// 獲取的數據數組
$array1 = [
    'https://example.com/page1' => 'Page 1',
    'https://example.com/page2' => 'Page 2'
];

$array2 = [
    'https://example.com/page3' => 'Page 3',
    'https://example.com/page4' => 'Page 4'
];

// 通過 array_flip() 反轉數組并合并
$flippedArray1 = array_flip($array1);
$flippedArray2 = array_flip($array2);

// 合併兩個反轉後的數組
$mergedArray = array_merge($flippedArray1, $flippedArray2);

// 替換域名為 m66.net
foreach ($mergedArray as $key => $value) {
    $mergedArray[$key] = str_replace('example.com', 'm66.net', $value);
}

// 輸出最終結果
print_r($mergedArray);
?>

輸出: