从数组中删除特定的重复键值
问题描述:
我已经搜索并尝试了许多不同的“从数组中删除重复”功能,但没有人为我的情况制定出来。我试图从数组中删除一个特定的重复。从数组中删除特定的重复键值
从下面我想删除“PHASER 4600”的重复。
[0] => Array
(
[id] => 1737
[product_name] => PHASER 4200
[certification_date] => 3/20/12
)
[1] => Array
(
[id] => 1738
[product_name] => PHASER 4600
[certification_date] => 3/20/12
)
[2] => Array
(
[id] => 1739
[product_name] => PHASER 4600
[certification_date] => 3/20/12
)
[3] => Array
(
[id] => 1740
[product_name] => PHASER 4700
[certification_date] => 3/20/12
)
[4] => Array
(
[id] => 1741
[product_name] => PHASER 4800
[certification_date] => 3/20/12
)
答
你可以把它们放到一个新的数组中,并在你放入它们时检查它是否是重复的。
$newArray = array();
foreach ($oldArray as $old) {
$found = false;
foreach ($newArray as $new) {
if ($new['product_name'] == $old['product_name']) {
$found = true;
}
}
if (!$found) {
array_push($newArray, $old);
}
}
答
您可以使用此功能:
function delete_duplicate_name(&$arr, $name){
$found = false;
foreach($arr as $key => $elm){
if($elm['product_name'] == $name){
if($found == true)
unset($arr[$key]);
else
$found = true;
}
}
}
delete_duplicate_name($arr, 'PHASER 4600');
print_r($arr);
你说你已经尝试了各种东西,但不显示你的工作。请添加一些代码,以便我们提供帮助。关于这个问题,[array_filter()](http://php.net/array_filter)可能会有所帮助。 –
从哪里得到这个数组 – kannan
我相信这是awnsered [这里](http://*.com/questions/307674/how-to-remove-duplicate-values-from-a-multi-dimensional-array-in -php) – Mazaka