$a=Array
(
  "0"=> Array
  (
  "0"=> Array
  (
"337"=>  
  )  ),  "1"=> Array
  (
  "0"=> Array
  (
"73"=> 101
  ),
  "1"=> Array
  (
"337"=> 121
  )
  ),  "2"=> Array
  (
  "0"=> Array
  (
 "80"=> 154
  ),
  "1"=> Array
  (
"331"=>  
  ),
  "2"=> Array
  (
"337"=>  
  )  ),
  "3"=> Array
  (
  "0"=> Array
  (
 "331"=> 152
  ),
  "1"=> Array
  (
"337"=>  
  )  ),
  "4"=> Array
  (
  "0"=> Array
  (
"76"=> 129
  ),
  "1"=> Array
  (
 "76"=> 128
  ),
  "2"=> Array
  (
"337"=>  
  )  ),
  "5"=> Array
  (
  "0"=> Array
  (
 "337"=>  
  )  ),
  "6"=> Array
  (
  "0"=> Array
  (
"73"=> 101
  ),
  "1"=> Array
  (
"331"=>  
  ),
  "2"=> Array
  (
"337"=> 121
  )
  )
)$b=array("0"=>array("num"=>7,"337"=>array("121"=>2)),
"1"=>array("num"=>2,"73"=>array("101"=>2)),
"2"=>array("num"=>1,"80"=>array("154"=>1)),
"3"=>array("num"=>3,"331"=>array("152"=>1),
"4"=>array("num"=>2,"76"=>array("129"=>1,"128"=>1)
));
遍历数组$a得到$b, 其中$b中的num 代码 代表$a中key值出现的次数,如:337出现了7次,num等于7
$b中是如:121 为2是表示 $a中121这个value值出现了2次。求大侠解答

解决方案 »

  1.   

    请帖出用 var_export 函数输出的数组
      

  2.   


    $bnum=array();
    $bvalue=array();
    foreach($a as $aitem1){
       foreach($aitem1 as $aitem2){
           foreach($aitem2 as $key=>$value){
                $bnum[$key]=intval($bnum[$key])+1;
                if($value!=""){
                    $bvalue[$key][$value]=intval($bvalue[$key][$value])+1;
                }
           }
       }
    }
    $b=array();
    foreach($bnum as $key=>$num){
        $b[]=array("num"=>$num,$key=>$bvalue[$key]);
    }
    print_r($b);