Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Узнать количество одинаковых элементов в массиве

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ridvik
Отправлено: 03 Апреля, 2014 - 22:25:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 244
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Доброй ночи господа) Такая вот бяда:
есть массив
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [1] => Array
  3.         (
  4.             [id] => 1
  5.             [name] => Admin
  6.             [first_name] => Андрей
  7.             [last_name] => Казаков
  8.             [avatar] => animation/11.gif
  9.             [status_access] => 1
  10.             [status] => 1
  11.             [country] => default
  12.         )
  13.  
  14.     [2] => Array
  15.         (
  16.             [id] => 2
  17.             [name] => ridvik
  18.             [first_name] =>
  19.             [last_name] =>
  20.             [avatar] => default.png
  21.             [status_access] => 1
  22.             [status] => 3
  23.             [country] => default
  24.         )
  25.  
  26. )


Этот код формирует игроков определенной команды. Так вот фишка в том, надо посчитать, сколько игроков имеют какой статус. То бишь параметр status. У первого равен 1 у второго 3. Пока что реализовано от 1 до 4. Вот как мне посчитать сколько игроков команды имеют статус 1-4?

P.S. Сильно пожалуйста не бейте))) объяснил конечно не очень, но думаю понять можно((

P.S.S. Спасибо за внимание)
 
 Top
EuGen Администратор
Отправлено: 03 Апреля, 2014 - 22:44:09
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP 5.5:
PHP:
скопировать код в буфер обмена
  1. //$array - исходный массив
  2. $result = array_count_values(array_column($array, 'status'));

PHP <5.5
PHP:
скопировать код в буфер обмена
  1. //$array - исходный массив
  2. $result = array_count_values(array_map(function($x)
  3. {
  4.    return $x['status'];
  5. }, $array));

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ingram
Отправлено: 03 Апреля, 2014 - 22:44:49
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Июнь 2010  


Помог: 3 раз(а)




Нужно пройтись по массиву foreach, и посчитать:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $statusGamer = array();
  4.  
  5. foreach($myArray as $row) {
  6.    $statusGamer[$row['status']]++;
  7. }
  8.  
  9. print_r($statusGamer);
  10.  
  11.  


в массиве $statusGamer ключ это наименование статуса, значение кол-во игроков с этим статусом.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB