【发布时间】:2015-04-20 04:36:09
【问题描述】:
得到一个像这样的多维数组:
$A = array(
[0]=>
array(
["rel"]=> 4
["name"]=> "Bar"
...
)
[1]=>
array(
["rel"]=> 2
["name"]=> "Bar"
...
)
[2]=>
array(
["rel"]=> 1
["name"]=> "Foo"
...
)
[3]=>
array(
["rel"]=> 5
["name"]=> "Bar"
...
)
[4]=>
array(
["rel"]=> 4
["name"]=> "Tee"
...
)
)
我想根据特定键删除重复项,同时保持除索引键之外的原始数组结构。
为了这个例子,假设我想删除那些具有相同键 ["name"] 的子数组。
所以最终的结果应该是这样的:
$X = array(
[0]=>
array(
["rel"]=> 4
["name"]=> "Bar"
...
)
[1]=>
array(
["rel"]=> 1
["name"]=> "Foo"
...
)
[2]=>
array(
["rel"]=> 4
["name"]=> "Tee"
...
)
)
我正在寻找解决此问题的有效方法。
理想情况下,array_unique 函数接受 key 值作为参数来查找给定数组上的重复项。
$X = array_key_unique($A, 'name');
【问题讨论】:
-
我不相信这个解决方案可以让我定位特定的键。看看 $X 数组如何不包含 $A 的元素 1 和 3,尽管它们有不同的
rel值。
标签: php arrays multidimensional-array duplicate-data