PHP 数组键值互换的方法根据数据类型而异:关联数组(字符串或整数键):使用 array_flip() 函数。普通数组(整数键):使用 asort() 排序数组,然后使用 array_k
PHP 数组键值互换的方法根据数据类型而异:关联数组(字符串或整数键):使用 array_flip() 函数。普通数组(整数键):使用 asort() 排序数组,然后使用 array_keys() 获取键。对象数组:使用 array_map() 和回调函数将对象的属性映射到新数组中。
PHP 数组键值互换:基于数据类型的算法选择
在 php 中,数组是一种有序且键控的数据结构。键值互换是指将数组的键和值进行交换,从而形成一个新的数组。根据数组中元素的数据类型,有不同的算法可以实现键值互换。
算法选择
数据类型 | 算法 |
---|---|
关联数组(键为字符串或整数) | array_flip() |
普通数组(键为整数) |
asort() + array_keys()
|
对象数组 |
array_map() + 自定义回调函数 |
实战案例
1. 关联数组
$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 数组键值互换:基于不同数据类型的算法选择的详细内容,更多请关注编程网其它相关文章!
--结束END--
本文标题: PHP 数组键值互换:基于不同数据类型的算法选择
本文链接: https://www.lsjlt.com/news/611815.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0