PHP从数组中删除重复项

6

我遇到了一个关于PHP数组的问题。首先,它们在这个数组中有子数组,并且我正在尝试删除重复项。我打印了一下我的数组,它输出了这个...

Array (
   [0] => Array ( [creditfeeid] => 318 [client] => Test 1 [adjustment] => 444.00 [issuedate] => 2012-02-10 20:27:00 [isrecurring] => No [comment] => 444 [commission] => 17.76 )
   [1] => Array ( [creditfeeid] => 319 [client] => Test 1 [adjustment] => 333.00 [issuedate] => 2012-02-10 20:27:00 [isrecurring] => No [comment] => 333 [commission] => 9.99 )
   [2] => Array ( [creditfeeid] => 320 [client] => Test 1 [adjustment] => 111.00 [issuedate] => 2012-02-10 20:27:00 [isrecurring] => No [comment] => 111 [commission] => 1.11 )
   [3] => Array ( [creditfeeid] => 321 [client] => Test 1 [adjustment] => 222.00 [issuedate] => 2012-02-10 00:00:00 [isrecurring] => No [comment] => 111 [commission] => 2.22 )
   [4] => Array ( [creditfeeid] => 292 [client] => Test 1 [adjustment] => 555.00 [issuedate] => 2012-01-25 13:04:43 [isrecurring] => Yes [comment] => 555 [commission] => 5.00 )
   [5] => Array ( [creditfeeid] => 317 [client] => Test 2 [adjustment] => 666.00 [issuedate] => 2012-02-10 00:00:00 [isrecurring] => No [comment] => 666 [commission] => 39.96 )
) 

我试图删除['comment']中的重复项,这些重复项是:
444 333 111 111 555 666
我一直在使用unique_array来尝试解决问题,但似乎没有起作用。这是我已经尝试过的...
foreach($array as $row){
if(array_unique($row['comment'])){
    continue;
}else{
    echo $row['comment'] . "<br/>";
}
}

另外

$array = array_unique($array);

foreach($array as $row){

        echo $row['comment'] . "<br/>";
}

我做错了什么?array_unique不是解决我的问题的答案吗? 谢谢提前。 J

你想保留哪个重复的? - bozdoz
1个回答

4

array_unique并不是解决您问题的答案。相反,考虑使用类似以下代码:

$new_array = Array();
foreach($old_array as $a) {
    if( !isset($new_array[$a['comment']]))
        $new_array[$a['comment']] = $a;
}
$new_array = array_values($new_array);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接