$a=Array
(
  [0] => Array
  (
  [0] => Array
  (
  [pname1] => 市场营销
  )  [1] => Array
  (
  [pname] => 营销传播
  )  [2] => Array
  (
  [pname] => 营销战略
  )  )  [1] => Array
  (
  [0] => Array
  (
  [pname1] => 市场营销
  )  [1] => Array
  (
  [pname] => 营销传播
  )  )
  [2] => Array
  (
  [0] => Array
  (
  [pname1] => 品牌管理
  )  [1] => Array
  (
  [pname] => 品牌战略
  )  [2] => Array
  (
  [pname1] => 企业文化
  )  [3] => Array
  (
  [pname] => 企业文化建设
  )  ))
处理成:
$b=array(array("num"=>"2","市场营销"=>array("营销传播","营销战略","营销传播")),array("num"=>"1","品牌管理"=>array("品牌战略","企业文化","企业文化建设")));
其中的num是$a这个数组pname1的记录数,如:市场营销出现了两次,num就记录为2,第二个是已pname1的value值,当成key值,求大侠告知并且解答

解决方案 »

  1.   

    你这个用for循环加array_search就能实现了,自己尝试着写一写
      

  2.   

    几个for循环一嵌套就出来了,就是代码有点多,其实很好写的,主要逻辑够清晰
      

  3.   


    $a= Array
    (
      '0' => Array
      (
      '0' => Array
      (
      'pname1' => '市场营销'
      ),   '1' => Array
      (
      'pname' => '营销传播'
      ),   '2' => Array
      (
      'pname' => '营销战略'
      )  ),  '1' => Array
      (
      '0' => Array
      (
      'pname1' => '市场营销'
      ),   '1' => Array
      (
      'pname' => '营销传播'
      ),
      ),
      '2' => Array
      (
      '0' => Array
      (
      'pname1' => '品牌管理'
      ),   '1' => Array
      (
      'pname' => '品牌战略'
      ),   '2' => Array
      (
      'pname1' => '企业文化'
      ),   '3' => Array
      (
      'pname' => '企业文化建设'
      )
      )
    );$arr = array();
    $keyArr = array();
    foreach($a AS $k => $v)
    {
    $keyID = 0;//
    $keyVal = '';
    $flag = true;
    foreach($v AS $key => $val)
    {
    if($flag)
    {
    if(empty($keyArr) || ($keyID = array_search($val['pname1'], $keyArr)) === false)
    {
    $keyID = count($arr);
    $keyVal = $val['pname1'];
    $keyArr[] = $val['pname1'];
    $arr[$keyID]['num'] = 1;
    }
    else
    {
    $keyVal = $keyArr[$keyID];
    $arr[$keyID]['num'] += 1;
    }
    $flag = false;
    }
    else
    {
    $arr[$keyID][$keyVal][] = array_pop($val);
    }
    }
    }
    print_r($arr);
      

  4.   

    $a=    Array
    (
      '0' => Array
      (
          '0' => Array
          (
          'pname1' => '市场营销'
          ),      '1' => Array
          (
          'pname' => '营销传播'
          ),      '2' => Array
          (
          'pname' => '营销战略'
          )  ),  '1' => Array
      (
          '0' => Array
          (
          'pname1' => '市场营销'
          ),      '1' => Array
          (
          'pname' => '营销传播'
          ),
      ),
      '2' => Array
      (
          '0' => Array
          (
          'pname1' => '品牌管理'
          ),      '1' => Array
          (
          'pname' => '品牌战略'
          ),      '2' => Array
          (
          'pname1' => '企业文化'
          ),      '3' => Array
          (
          'pname' => '企业文化建设'
          )
      )
    );
    foreach($a as $key=>$value){
    foreach($value as $key1=>$value1){
    echo "";
    }
    }