Я пытаюсь использовать 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 . '",';
}
}
}
Попробуйте этот код.
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);
}
Вы должны поместить все теги из запроса в один массив. Итак, используя ваш существующий код:
// $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