當前位置: 首頁> 最新文章列表> PHP 數組鍵值互換方法與最佳算法選擇

PHP 數組鍵值互換方法與最佳算法選擇

M66 2025-07-11

PHP 數組鍵值互換方法與最佳算法選擇

在PHP 中,數組是一種有序且鍵控的數據結構。鍵值互換是指將數組中的鍵和值進行交換,從而創建一個新的數組。根據數組元素的數據類型,可以選擇不同的算法來實現鍵值互換。

算法選擇

數據類型演算法
關聯數組(鍵為字符串或整數) array_flip()
普通數組(鍵為整數) asort() + array_keys()
對像數組array_map() + 自定義回調函數

實戰案例

關聯數組

當數組的鍵是字符串或整數時,可以使用array_flip()函數來實現鍵值的互換。

 $arr = ['name' => 'John', 'age' => 30];
$flippedArr = array_flip($arr);
print_r($flippedArr);

輸出結果:

 Array
(
    [John] => name
    [30] => age
)

普通數組

對於鍵是整數的普通數組,首先使用asort()對數組進行排序,然後使用array_keys()獲取新的鍵。

 $arr = [1, 2, 3, 4, 5];
asort($arr);
$flippedArr = array_keys($arr);
print_r($flippedArr);

輸出結果:

 Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

對像數組

對於包含對象的數組,可以使用array_map()配合自定義回調函數來實現鍵值互換。

 class Person {
    public $name;
    public $age;
}

$person1 = new Person();
$person1->name = 'John';
$person1->age = 30;

$person2 = new Person();
$person2->name = 'Mary';
$person2->age = 25;

$arr = [$person1, $person2];
$flippedArr = array_map(function ($obj) {
    return [$obj->name, $obj];
}, $arr);
print_r($flippedArr);

輸出結果:

 Array
(
    [John] => Person Object
    (
        [name] => John
        [age] => 30
    )
    [Mary] => Person Object
    (
        [name] => Mary
        [age] => 25
    )
)

以上是PHP 數組鍵值互換的幾種常見方法和實戰案例,根據不同的數據類型選擇合適的算法,可以提高程序的效率與可讀性。