2010-10-07 2 views
2

У меня есть массив, который выглядит так, как показано ниже. Я пытаюсь сгруппировать и подсчитать их, но не смог заставить его работать.Подсчет различных значений в многомерном массиве

оригинальный $ Результат массив выглядит следующим образом:

Array 
(
    [sku] => Array 
     (
      [0] => 344 
      [1] => 344 
      [2] => 164 
     ) 

    [cpk] => Array 
     (
      [0] => d456 
      [1] => d456 
     ) 
) 

Я пытаюсь принять это и создать новый массив:

$item[sku][344] = 2; 
$item[sku][164] = 1; 
$item[cpk][d456] = 1; 

я прошла через различные итерации in_array заявления внутри для петель, но до сих пор не удалось заставить его работать. Может ли кто-нибудь помочь?

+0

Я снял «потенциальное решение» метки, которые вы добавили к этому вопросу, чтобы предотвратить [ХУ Проблема] (HTTP: // мета. stackexchange.com/q/66377/164291). – 2012-02-11 21:21:55

ответ

4

Я не использовал бы in_array() лично здесь.

Это просто происходит путем создания массива по мере его поступления.

Это seems to work без необходимости сначала установить индекс как 0.

$newArray = array(); 

foreach($result as $key => $group) { 
    foreach($group as $member) { 
     $newArray[$key][$member]++; 
    }  
} 
+0

Любопытный. Интересно, это задокументированное поведение. – mpen

+0

@Ralph Не знаю. Я предполагаю, что если я выполняю арифметику ('' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '') – alex

Смежные вопросы