php array_flip()函数
array_flip() 的原理和用法
array_flip() 是 PHP 内置函数,它的作用是 交换数组的键和值,并且自动去重(因为数组的键不能重复)。
基本用法
$array = [1, 2, 3, 4];
$flipped = array_flip($array);
print_r($flipped);
输出:
Array
(
[1] => 0
[2] => 1
[3] => 2
[4] => 3
)
解释:
原数组的值变成了键,
原来的键(索引)变成了值。
关键特性
去重:如果有相同的值,array_flip() 会保留最后一个值作为键。
适用于值唯一的数组:如果数组中的值有重复,可能会丢失数据。
只能用于标量值(字符串、数字):不能用于对象或数组。
array_flip() 的去重特性
$array = ['apple', 'banana', 'cherry', 'banana'];
$flipped = array_flip($array);
print_r($flipped);
输出:
Array
(
[apple] => 0
[banana] => 3
[cherry] => 2
)
注意:
banana 在索引 1 和 3 都存在,最终只保留 banana => 3。
array_flip() 实现去重
如果你有一个数组,需要去重并保留顺序:
$array = [3, 1, 2, 3, 4, 2, 5];
// 先 array_flip() 让值变键,再 array_keys() 还原索引数组
$array = array_keys(array_flip($array));
print_r($array);
输出:
Array
(
[0] => 3
[1] => 1
[2] => 2
[3] => 4
[4] => 5
)
等效于 array_unique(),但通常更快!
array_flip() 结合 isset() 高效插入唯一值
如果数组较大,使用 in_array() 查找会变慢(O(n)),可以使用 array_flip() 作为哈希表(O(1) 查找):
$array = [1, 2, 3, 4];
$assoc = array_flip($array); // 变成关联数组
$newValue = 5;
if (!isset($assoc[$newValue])) {
$assoc[$newValue] = true;
}
// 还原成索引数组
$array = array_keys($assoc);
print_r($array);
isset() 比 in_array() 更快,因为它不需要遍历整个数组。
什么时候用 array_flip()?
去重(比 array_unique() 更快)
检查元素是否存在(哈希表 O(1) 速度)
大数据量插入唯一值
适用于大数组,提高性能!
编辑:
阅读量:23
url链接:https://www.qozr.com/cms_php-arrayflip-han-shu.html
Tag标签: array_flip() , php
上一篇: python selenium+ChromeDriver
下一篇: php in_array()函数
更多新闻
Copyright © 千欧中软 版权所有 https://www.qozr.com seo | 网站建设 [渝ICP备15005074号]
渝公网安备50011802011077