|
|
|
| Доброе время суток. Помогите разобраться как сделать.
Есть например массив состоящий из набора цифр
array = (1,2,3,1,5,12,10,5)
|
и так далее
так вот, как в нем подсчитать количество повторяющихся элементов?
т.е. что бы я знал что элемент 1 повторяется 2 раза, элемент 2 - 1 раз и так далее. | |
|
|
|
|
|
|
|
для: Aidaho
(19.08.2011 в 21:28)
| | Для этого удобно воспользоваться специальной функцией array_count_values(). | |
|
|
|
|
|
|
|
для: cheops
(19.08.2011 в 21:36)
| | Спасибо )
как раз за пару минут до этого нашел эту функцию. Только что то не понятно, как она работает. Пытаюсь из базы достать, а мне в ответ ошибка Достаю так:
$q = "select tag_id from post_tag";
$res = mysql_query($q) or die(mysql_error())
$tegs = mysql_fetch_array($res);
$count = array_count_values($tegs);
|
а ошибка такая:
Warning: array_count_values() [function.array-count-values]: The argument should be an array in
и через цикл пытался прогонять, так же. | |
|
|
|
|
|
|
|
для: Aidaho
(19.08.2011 в 21:54)
| | Хм... вероятно ему не нравится ассоциативный массив, попробуйте вместо mysql_fetch_array() использовать mysql_fetch_row().
>и через цикл пытался прогонять, так же.
Что имеется в виду? Вы хотите прогонять содержимое одной строки или содержимое таблицы? Если последнее, то лучше сформировать в цикле промежуточный массив и обработать его при помощи array_count_values() уже после цикла. | |
|
|
|
|
|
|
|
для: cheops
(19.08.2011 в 22:52)
| | может сразу запросом получить результат? :)
$q = "SELECT tag_id, COUNT(tag_id) t FROM post_tag GROUP BY tag_id";
$res = mysql_query($q) or die(mysql_error());
while($tegs = mysql_fetch_assoc($res)){
echo $tegs[tag_id]." ".$tegs[t]."<br />";
}
|
а потом еще и так
$q = "SELECT tag_id, COUNT(tag_id) t FROM post_tag GROUP BY tag_id ORDER BY t";
|
| |
|
|
|