Как удалить дубликаты php array_unique не работает

Я пытаюсь использовать array_unique(); но не работает это мой код, пожалуйста, помогите мне, что я делаю не так? Я хочу отображать все теги без дубликатов

ID | TAGS
1 | rock, punk, jazz
2 | pop, rock, classic
3 | jazz, blues, rock
4 | rock, rap, metal

$wynik = mysql_query("SELECT * FROM nabk_t_item_tags") or die('Błąd zapytania');
if (mysql_num_rows($wynik) > 0) {
while ($r = mysql_fetch_assoc($wynik)) {
$input = $r['tags'];
$fields = explode(',', $input);
$fields2 = array_unique($fields);
foreach ($fields2 as $field) {
echo '"' . $field . '",';
}
}
}

1

Решение

Попробуйте этот код.

if (mysql_num_rows($wynik) > 0) {
$used=array();
while ($r = mysql_fetch_assoc($wynik)) {
$input = $r['tags'];
$fields = explode(',', $input);
foreach($fields as $tg){
if(!isset($used[$tg])){
echo '"' . $tg . '",';
$used[$tg]=" ";
}
}
}
unset($used);
}
0

Другие решения

Вы должны поместить все теги из запроса в один массив. Итак, используя ваш существующий код:

// $fields2 = array_unique($fields);
$fields2 = array_merge($fields2, $fields);

Затем после цикла пока $fields2 будет иметь все теги, и вы можете array_unique этот массив. Итак, добавьте эти строки и посмотрите результат:

    } // end while
$unique_tags = array_unique($fields2);
var_dump($unique_tags);
} // end if
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector