【发布时间】:2013-02-09 00:13:56
【问题描述】:
我在 php 中有一个小问题,我发现很难用语言来解释。我有一个包含键值的关联数组。我想做一个函数(或者如果已经有一个函数),它将一个数组作为输入并删除重复项,但两种方式都可以。
例如:
在我的数组中,我有 {a -> b} {a -> c} {b -> a} {b -> c} ...
从这个角度来看,似乎没有任何重复,但对我来说 {a -> b} 和 {b -> a} 是重复的。所以我希望该函数将其视为重复项并仅返回其中一个。
我尝试使用 array_flip / array_unique 在循环中交换键和值,但效果不佳。
即使它是一个大长度的数组,你能帮忙找到一种方法吗?或者如果有一个 php 函数可以做到这一点。
非常感谢您的帮助,谢谢。
有代码来说明这个想法:
对于这样的数组:
Array (
[0] => Array ( [0] => a [1] => b)
[1] => Array ( [0] => a [1] => c )
[2] => Array ( [0] => b [1] => a )
[3] => Array ( [0] => b [1] => c )
)
【问题讨论】:
-
你能给出更详细的代码示例吗?
-
所以你只想删除相同的对,即
a->b&b->a,而不是a->b&a->c或a->b&c->b? -
{a -> b} {a -> c} 您是否有多个同名键(不可能)..?如果我理解正确,如果键 a 也作为值存在,例如 b => a 它对你来说是重复的吗?如果不是,那么array_diff_assoc() 可能就是您正在寻找的功能..
-
完全是 Alasdair,不幸的是我不知道 Miloshio。
-
[0] => Array ( [0] => a [1] => b)这不是关联数组,要么您的问题具有误导性,要么您的示例错误。我猜是前者,因为您说的是重复键,这是不可能的。
标签: php unique associative-array key-value array-flip