2013-08-02 8 views
0

다차원 배열에서 값의 발생 횟수를 계산하는 간단한 방법이 있습니까?다차원 배열의 어커런스 반환

나는 다음과 같은 배열을 가지고 :

array(
    (int) 0 => array(
     'HrEmployee' => array(
      'id' => '7', 
      'surname' => 'Basson', 
      'name' => 'Andries' 
     ), 
     'Setup' => array(
      'color' => '004356', 
      'size' => 12 
    ), 
    (int) 1 => array(
     'HrEmployee' => array(
      'id' => '25', 
      'surname' => 'Coetzee', 
      'name' => 'Zandereen', 
     ), 
     'Setup' => array(
      'color' => 'CFCFCF', 
      'size' => 8 
    ), 
    (int) 2 => array(
     'HrEmployee' => array(
      'id' => '30', 
      'surname' => 'De Kock', 
      'name' => 'Theo', 
     ), 
     'Setup' => array(
      'color' => 'FFFFFF', 
      'size' => 12 
    ), 
    (int) 3 => array(
     'HrEmployee' => array(
      'id' => '31', 
      'surname' => 'De Vaal', 
      'name' => 'Chantell', 
     ), 
     'Setup' => array(
      'color' => '00FF00', 
      'size' => 10 
    ), 
) 

을 그리고 그것은 반환해야합니다, 그래서 나는 특정 크기가 오는 시간의 양을 확인하려면 :

array(
    (int) 8 => (int) 1, 
    (int) 10 => (int) 1, 
    (int) 12 => (int) 2 
) 

어떻게 달성 할 수 이?

+0

당신이 정말 깊은 이동해야합니다. 배열의 루프는 '크기'를 확인하고 계산합니다 .. –

답변

1

은 다음과 같이 작동합니다 : 내 경험에

$sizes = array(); 
foreach($arr as $v) { 
    $s = $v['Setup']['size']; 
    if(!isset($sizes[$s])){ 
     $sizes[$s] = 0; 
    } 
    $sizes[$s]++; 
} 

print_r($sizes); 
+0

굉장합니다. 짧고 달다. 나는 내 머리 속에서 그것을 생각했다. 감사! – Albert