首頁  >  文章  >  後端開發  >  PHP 陣列鍵值互換:基於不同資料類型的演算法選擇

PHP 陣列鍵值互換:基於不同資料類型的演算法選擇

WBOY
WBOY原創
2024-05-01 21:12:02810瀏覽

PHP 數組鍵值互換的方法根據資料類型而異:關聯數組(字串或整數鍵):使用 array_flip() 函數。普通數組(整數鍵):使用 asort() 排序數組,然後使用 array_keys() 取得鍵。物件陣列:使用 array_map() 和回呼函數將物件的屬性對應到新陣列中。

PHP 数组键值互换:基于不同数据类型的算法选择

PHP 陣列鍵值互換:基於資料類型的演算法選擇

在PHP 中,陣列是一種有序且鍵控的資料結構。鍵值互換是指將陣列的鍵和值交換,從而形成一個新的陣列。根據數組中元素的資料類型,有不同的演算法可以實現鍵值互換。

演算法選擇

##演算法關聯數組(鍵為字串或整數)普通陣列(鍵為整數) #物件陣列
資料類型
array_flip()
asort() array_keys()
array_map() 自訂回呼函數

#

$arr = ['name' => 'John', 'age' => 30];
$flippedArr = array_flip($arr);
print_r($flippedArr);
// 输出:
// Array
// (
//     [John] => name
//     [30] => age
// )
2. 普通陣列

$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
// )
3. 物件陣列

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 陣列鍵值互換:基於不同資料類型的演算法選擇的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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