PHP удаляет дубликаты из массива - PullRequest
6 голосов
/ 12 февраля 2012

У меня небольшая проблема с моим массивом PHP. Во-первых, у них есть массивы внутри этого массива, и я пытаюсь удалить дубликаты. Я сделал print_r моего массива, и он распечатал это ....

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

1 Ответ

4 голосов
/ 12 февраля 2012

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);
...