PHP 數組鍵值互換的方法根據資料類型而異:關聯數組(字串或整數鍵):使用 array_flip() 函數。普通數組(整數鍵):使用 asort() 排序數組,然後使用 array_keys() 取得鍵。物件陣列:使用 array_map() 和回呼函數將物件的屬性對應到新陣列中。
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 // )
$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 // )
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中文網其他相關文章!