2013-02-06 63 views
0

我有一个大阵,我基本上需要计算不重复的号码: example array在多维数组中计数值?

我在寻找类似

$result = array(
    'A3D5' => array('P2' => 1, 'P3' => 1, 'P4' => 1, 'total' => 3), 
    'AE5S' => array('P4' => 1, 'total' => 1) 
); 

最终的结果我已经试过foreaching通过,但不能似乎弄清楚如何将它们分类到另一个键,例如$zone = "P{$array['zone']}"; $result[$zone][$prestige]++,或者似乎有点不起作用或者仅仅是错误。

+0

您的示例数组中没有'A35S'。 – Antony

+0

'AE5S'的'声望'值为2,而不是'P4'。 – Antony

+0

已修复,我正在计算某个值的发生次数,而不是数值。 – Dylan

回答

0
$array = array(
    "denizen" => array 
     (
      "prestige" => 2, 
      "zone" => "A3D5", 
      "scope_frag" => 765 
     ), 

    "생각" => array 
     (
      "prestige" => 4, 
      "zone" => "A3D5", 
      "scope_frag" => 135 
     ), 

    "Ryans" => array 
     (
      "prestige" => 3, 
      "zone" => "A3D5", 
      "scope_frag" => 78 
     ), 

    "지적인" => array 
     (
      "prestige" => 2, 
      "zone" => "AE5S", 
      "scope_frag" => 481 
     ) 
); 
foreach ($array as $group) { 
    $zones[$group["zone"]][] = $group["prestige"]; 
} 
foreach ($zones as $name => $zone) { 
    $total = count($zone); 
    foreach ($zone as $prestige) { 
     $result[$name]["P".$prestige] += 1; 
    } 
    ksort($result[$name]); 
    $result[$name]["total"] = $total; 
} 
echo "<pre>"; 
print_r($result); 
echo "</pre>";