2014-02-05 50 views
1

我有了这个数组:PHP array_count_values多维数组

fffarray(2) { 
    [0]=> 
    array(1) { 
    ["keyword1"]=> 
    string(17) "Software Engineer" 
    } 
    [3]=> 
    array(2) { 
    ["keyword1"]=> 
    string(10) "Hampelmann" 
    ["keyword2"]=> 
    string(17) "Software Engineer" 
    } 
} 

我要像

fffarray(1) { 
    ["Software Engineer"]=> 
    int(2) 
    ["Hampelmann"]=> 
    int(1) 
} 

输出我真的尽力了,但不能做到这一点。

请你帮帮我。

感谢

回答

1

如果你的阵列总是会只有两个维度,您可以使用此:

$finalArray = array(); 

foreach ($fffarray as $array) 
{foreach ($array as $key => $string) 
    {$finalArray[$string] = $finalArray[$string] + 1;}} 

这将在所有子阵计算每个多少OCCURENCES

+0

作品,非常感谢 – user3169083

+0

荡,通过一点点打我。 :) – Biotox

0

尝试构建一个像这样保持计数的新阵列:

$newArray = array(
    array("Software Engineer"), 
    array("Hampelmann", "Software Engineer") 
); 

$countArray = array(); 

foreach($newArray as $tempArray){ 
    foreach($tempArray as $key => $value){ 
    if(array_key_exists($value, $countArray)){ 
     $countArray[$value] = $countArray[$value] + 1; 
    } else { 
     $countArray[$value] = 1; 
    } 
    } 
} 

echo '<pre>'.print_r($countArray, true).'</pre>'; 

输出出来,如:

Array 
(
    [Software Engineer] => 2 
    [Hampelmann] => 1 
)