За последние 24 часа нас посетили 17698 программистов и 1722 робота. Сейчас ищут 882 программиста ...

Подсчитать количество повторяющихся значений в цикле

Тема в разделе "Прочие вопросы по PHP", создана пользователем wgt, 10 фев 2015.

  1. wgt

    wgt Новичок

    С нами с:
    10 фев 2015
    Сообщения:
    2
    Симпатии:
    0
    Всем доброго времени суток.

    Не могу подсчитать количество повторяющихся значения в цикле, листаю массив $category_data
    Код (Text):
    1.  
    2.                 foreach($category_data as $category){
    3.                     echo '<pre>';
    4.                         print_r($category);
    5.                     echo '</pre>'; 
    6.                 }
    - вывожу и получаю следующее:

    Код (Text):
    1.  
    2.    
    3.  
    4. Array
    5. (
    6.     [category_id] => 70
    7.     [language_id] => 1
    8.     [name] => Офисные кресла
    9.     [description] =>
    10.     [meta_description] => Офисные кресла
    11.     [meta_keyword] => Офисные кресла
    12.     [seo_title] => Офисные кресла
    13.     [seo_h1] => Офисные кресла
    14. )
    15.  
    16. Array
    17. (
    18.     [category_id] => 65
    19.     [language_id] => 1
    20.     [name] => Столы для дома
    21.     [description] =>
    22.     [meta_description] => Столы для дома
    23.     [meta_keyword] => Столы для дома
    24.     [seo_title] => Столы для дома
    25.     [seo_h1] => Столы для дома
    26. )
    27.  
    28. Array
    29. (
    30.     [category_id] => 59
    31.     [language_id] => 1
    32.     [name] => Мебель для дома
    33.     [description] =>
    34.     [meta_description] => Мебель для дома
    35.     [meta_keyword] => Мебель для дома
    36.     [seo_title] => Мебель для дома
    37.     [seo_h1] => Мебель для дома
    38. )
    39.  
    40. Array
    41. (
    42.     [category_id] => 65
    43.     [language_id] => 1
    44.     [name] => Столы для дома
    45.     [description] =>
    46.     [meta_description] => Столы для дома
    47.     [meta_keyword] => Столы для дома
    48.     [seo_title] => Столы для дома
    49.     [seo_h1] => Столы для дома
    50. )
    как посчитать повторения по ключу - [category_id]?
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    подозреваю, что значения пришли из базы. там элементарно
    Код (Text):
    1. SELECT category_id, COUNT(*) FROM somewhere GROUP BY category_id
    если таки на PHP, то внутри цикла поставь
    Код (PHP):
    1. $counters[$category['category_id']]++;
    в итоге у тебя будет массив счетчиков по каждой категории.
     
  3. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    А для чего требуется повторять в таблице вообще как либо?)
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    мистер советчик рогнорог, ты или объясни суть своего мистического решения, или пиздабол viewtopic.php?p=414945#p414945
     
  5. wgt

    wgt Новичок

    С нами с:
    10 фев 2015
    Сообщения:
    2
    Симпатии:
    0
    Немного не пойму вашего вопроса). Есть массив данных которые я получаю и обрабатываю (листаю). В этих массивах есть повторяющиеся значения. По уникальному ключу этих массивов я хочу посчитать сумму ПОВТОРЯЮЩИХСЯ значений в этих массивах.
     
  6. noganno2

    noganno2 Новичок

    С нами с:
    23 июн 2014
    Сообщения:
    27
    Симпатии:
    1
    Код (Text):
    1.  
    2. $i=0;
    3.  foreach($category_data as $category){
    4.  
    5. if(что то == чему то) $i++;
    6.                echo '<pre>';
    7.                   print_r($category);
    8.                echo '</pre>';  
    9.  
    10.  
    11.             }
     
  7. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    Код (PHP):
    1. $array=array(
    2.     'key1'=>'1',
    3.     'key2'=>'1',
    4.     'key3'=>'2',
    5.     'key4'=>'2',
    6.     'key5'=>'3'
    7. );
    8. $array=array_count_values($array);
    9. $i=0;
    10. foreach($array as $value) {
    11.     if(1<$value) {
    12.         $i+=$value;
    13.     }
    14. }
    15. echo $i; //4 
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Кусок "По уникальному ключу этих массивов " здесь лишний, не?
    Ты пробовал то, что я посоветовал в первом комментарии?
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    как будто тут есть другие варианты =)
    А раз он это не сделал, то он не сделал ничего.