Home  >  Article  >  Backend Development  >  PHP array key value exchange: algorithm selection based on different data types

PHP array key value exchange: algorithm selection based on different data types

WBOY
WBOYOriginal
2024-05-01 21:12:02775browse

PHP The method of swapping array key values ​​varies depending on the data type: Associative arrays (string or integer keys): use the array_flip() function. Normal array (integer keys): Use asort() to sort the array, then use array_keys() to get the keys. Array of objects: Use array_map() and callback functions to map an object's properties into a new array.

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

PHP array key-value exchange: algorithm selection based on data type

In PHP, an array is an ordered And keyed data structure. Key-value exchange refers to exchanging the keys and values ​​of an array to form a new array. Depending on the data type of the elements in the array, there are different algorithms for key-value interchange.

Algorithm selection

Data type Algorithm
Associative array (keys are strings or integers) array_flip()
Ordinary array (keys are integers) asort() array_keys()
Object array array_map() Custom callback function

##Practical case

1. Associative array

$arr = ['name' => 'John', 'age' => 30];
$flippedArr = array_flip($arr);
print_r($flippedArr);
// 输出:
// Array
// (
//     [John] => name
//     [30] => age
// )

2. Ordinary array

$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. Object array

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
//         )
// )

The above is the detailed content of PHP array key value exchange: algorithm selection based on different data types. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn