подсчет предметов в массиве - PullRequest
1 голос
/ 31 марта 2012

У меня есть массив

Array ( [0] => Array ( [field_yourrating_rating] => 100 ) [1] => Array ( [field_yourrating_rating] => 80 ) [2] => Array ( [field_yourrating_rating] => 100 ) ) 

Я хочу иметь возможность подсчитать количество вхождений каждого значения - например, 100 появляется 1 раз, а 80 - один раз.

Я попытался использовать array_count_values, но он не работает с многомерным массивом!Что еще можно попробовать?

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Если массив только когда-либо структурирован, как в вашем примере, тогда это будет работать:

  foreach ($array as $value)
  {
    $count[current($value)] += 1;
  }

И тогда $count будет массивом, где ключи - это значения входного массива, а значения - количество раз, которое они встречаются.

0 голосов
/ 31 марта 2012

используйте следующую функцию ...

function array_searchRecursive($needle, $haystack, $strict = false, $path = array())
{
        if (!is_array($haystack))
        {
                return false;
        }
        foreach ($haystack as $key => $val)
        {
                if (is_array($val) && $subPath = array_searchRecursive($needle, $val, $strict, $path))
                {
                        $path = array_merge($path, array($key), $subPath);
                        return $path;
                } elseif ((!$strict && $val == $needle) || ($strict && $val === $needle))
                {
                        $path[] = $key;
                        return $path;
                }
        }
        return false;
}

и простой

echo sizeof(array_searchRecursive(see arguments above));

даст вам ответ;)

хорошего дня!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...