2014-03-06 57 views
0
$array = array(array('car1', 'car2'), 
array('car1', 'car2', 'car3'), 
array('car1', 'car2', 'car3')); 

我想要的结果: [CAR1] [CAR2] = 3 [CAR1] [CAR2] [的Car3] = 2如何计算超过1倍的值

+0

你忘了,包括到目前为止您的代码和输出/你得到的错误。 –

+0

看看[docs](http://us1.php.net/manual/en/function.array-count-values.php#refsect1-function.array-count-values-examples), 虽然你将不得不修改它以使用多维数组 –

回答

0

迭代阵列,然后迭代数组再次将索引推入数组中,但在先前存在的情况下增加值。

$count_values = array(); 
foreach ($array as $a) { 
    foreach ($a as $b) { 
     $count_values[$b]++; 
    } 
} 

Working example

而且documentation for array_count_values里面出现这样的回答,这是在评论上述。首先检查文件。

0

以下代码在php文档中;

<?php 

$ar1[] = array("red","green","yellow","blue"); 
$ar1[] = array("green","yellow","brown","red","white","yellow"); 
$ar1[] = array("red","green","brown","blue","black","yellow"); 
#$ar1= array("red","green","brown","blue","black","red","green"); // Possible with one  or multiple Array 

$res = array_icount_values ($ar1); 
print_r($res); 

function array_icount_values($arr,$lower=true) { 
    $arr2=array(); 
    if(!is_array($arr['0'])){$arr=array($arr);} 
    foreach($arr as $k=> $v){ 
     foreach($v as $v2){ 
     if($lower==true) {$v2=strtolower($v2);} 
     if(!isset($arr2[$v2])){ 
      $arr2[$v2]=1; 
     }else{ 
      $arr2[$v2]++; 
     } 
    } 
    } 
    return $arr2; 
} 
/* 
Will print: 
Array 
(
    [red] => 3 
    [green] => 3 
    [yellow] => 4 
    [blue] => 2 
    [brown] => 2 
    [white] => 1 
    [black] => 1 
) 
*/ 
?> 

链接:http://cn2.php.net/manual/zh/function.array-count-values.php#95713