现在需要对一张表A进行数据统计,要把A表中的B统计出现了那些类型和这些类型的数量,最后在前台给他输出例如化工(5)工业(10)这种类型,应该如何编写程序求指点!

解决方案 »

  1.   

    你查询出a表中的b放入数组
    array_count_values函数可以统计数组中所有的值出现的次数
      

  2.   


    array(7) { [0]=> array(1) { ["trade"]=> string(24) ";医药;农林牧渔;玩" } [1]=> array(1) { ["trade"]=> string(12) "冶金矿产" } [2]=> array(1) { ["trade"]=> string(12) "食品饮料" } [3]=> array(1) { ["trade"]=> string(15) "化工原材料" } [4]=> array(1) { ["trade"]=> string(15) "化工原材料" } [5]=> array(1) { ["trade"]=> string(13) ";化工原料" } [6]=> array(1) { ["trade"]=> string(24) ";纺织皮革;服装;玩" } } 如何把这个数组统计出医药有多少个,农林牧渔有多少个,并把这些保存到一个数组中
      

  3.   

    $ar = array(
     array( "trade" => ";医药;农林牧渔;玩" ),
     array( "trade" => "冶金矿产" ),
     array( "trade" => "食品饮料" ),
     array( "trade" => "化工原材料" ),
     array( "trade" => "化工原材料" ),
     array( "trade" => ";化工原料" ),
     array( "trade" => ";纺织皮革;服装;玩"),
    );foreach($ar as $v) {
      foreach(split(';', $v['trade']) as $k) {
        if(empty($k)) $k = '无法识别';
        $r[$k]++;
      }
    }
    print_r($r);Array
    (
        [无法识别] => 3
        [医药] => 1
        [农林牧渔] => 1
        [玩] => 2
        [冶金矿产] => 1
        [食品饮料] => 1
        [化工原材料] => 2
        [化工原料] => 1
        [纺织皮革] => 1
        [服装] => 1
    )
      

  4.   

    那是一样的!
    你可以帖出 var_export 的结果,而不是 var_dump 的结果。
    无论多复杂,你都不要自行删改
      

  5.   


    array(1) { [""]=> int(2) } array(2) { [""]=> int(2) ["�"]=> int(1) } array(3) { [""]=> int(2) ["�"]=> int(1) ["�"]=> int(1) } array(3) { [""]=> int(2) ["�"]=> int(2) ["�"]=> int(1) } array(3) { [""]=> int(2) ["�"]=> int(3) ["�"]=> int(1) } array(3) { [""]=> int(4) ["�"]=> int(3) ["�"]=> int(1) } array(3) { [""]=> int(6) ["�"]=> int(3) ["�"]=> int(1) } 都显示不出来啊
      

  6.   


    $name = $this->db_product->get_product_name($opts, $this->cache);
     
    foreach ($name as &$l) 
             {
              foreach($l as $v) {
      foreach(split(';', $v['trade']) as $k) {
        
        $r[$k]++;
      }
    }var_dump($r);
      

  7.   

    name数组array(7) { [0]=> array(1) { ["trade"]=> string(24) ";医药;农林牧渔;玩" } [1]=> array(1) { ["trade"]=> string(12) "冶金矿产" } [2]=> array(1) { ["trade"]=> string(12) "食品饮料" } [3]=> array(1) { ["trade"]=> string(15) "化工原材料" } [4]=> array(1) { ["trade"]=> string(15) "化工原材料" } [5]=> array(1) { ["trade"]=> string(13) ";化工原料" } [6]=> array(1) { ["trade"]=> string(24) ";纺织皮革;服装;玩" } } 
      

  8.   

    让你帖出 var_export($name) 的结果,你为什么不肯呢?
      

  9.   

    可以善用一下 array_count_values() 函数
    不过这个思路要有点转变,建议在解决了问题之后自己另外再花时间学习这个
    另外,类别不复杂的话,用SQL直接解决也是个好选择
      

  10.   

    foreach($ar as $v) {
      foreach(split(';', $v['trade']) as $k) {
        if(! empty($k)) //不为空才有效
          $r[$k]++;
      }
    }
      

  11.   

    我想再问个问题,如果这个数值我要用section循环再前台显示,应该怎么使用section,需要显示成化工(1)这个形式
      

  12.   

    那是 Smarty 模板引擎了吧?
    对不起,我是绝不使用它的
      

  13.   

    从我的示例代码
    foreach($r as $k=>$v)
      echo "$k($v)<br />";
      

  14.   

    如果把那个结果数组变成这样,你可以使用的话,那也是很方便的了
    $ar = array(
     array( "trade" => ";医药;农林牧渔;玩" ),
     array( "trade" => "冶金矿产" ),
     array( "trade" => "食品饮料" ),
     array( "trade" => "化工原材料" ),
     array( "trade" => "化工原材料" ),
     array( "trade" => ";化工原料" ),
     array( "trade" => ";纺织皮革;服装;玩"),
    );foreach($ar as $v) {
      foreach(split(';', $v['trade']) as $k) {
        if(! empty($k)) $r[$k]++;
      }
    }$t = array(array_keys($r), array_values($r));
    print_r($t);Array
    (
        [0] => Array
            (
                [0] => 医药
                [1] => 农林牧渔
                [2] => 玩
                [3] => 冶金矿产
                [4] => 食品饮料
                [5] => 化工原材料
                [6] => 化工原料
                [7] => 纺织皮革
                [8] => 服装
            )    [1] => Array
            (
                [0] => 1
                [1] => 1
                [2] => 2
                [3] => 1
                [4] => 1
                [5] => 2
                [6] => 1
                [7] => 1
                [8] => 1
            ))