php

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

同类新闻

更多新闻

Copyright © 千欧中软 版权所有 https://www.qozr.com seo | 网站建设 [渝ICP备15005074号] 渝公网安备50011802011077