本帖最后由 xiachao2008 于 2012-05-28 18:47:53 编辑

解决方案 »

  1.   

    本帖最后由 xuzuning 于 2012-05-28 19:18:23 编辑
      

  2.   

    我怎么每次一听到无限分类就一哆嗦...这TNND到底是什么神物, 难道就是楼主所说的好几个级别的商品?堆代码就是了.
      

  3.   


    这个代码有点“简单”看不懂
    可以指点一下吗$r = array();
    foreach($ar as $v) {
      $p =& $r;  ——————这个的功有是做什么哟?
      foreach(str_split(array_shift($v), 2) as $k) {
        if(! isset($p[$k])) $p[$k] = array();
        $p =& $p[$k];  ————这个的功有是做什么哟,为什么要加&
      }
      $p['value'] = $v;
    }print_r($r);唉,总之,上面的代码,我看懂一半,没有看懂一半。。可否指点一下呢?
      

  4.   

    $p =& $r;
    $p =& $p[$k];
    引用呀!设原串为 100201,切割后为 10 02 01 ,$r 为数组
    则 $p 依次引用
    $r
    $r['10']
    $r['10']['02']
    $r['10']['02']['01']
      

  5.   

    其实我的问题是一遇到这样的代码&我就看不懂了。
    特别是数组代&这样符号的,更是难理解以前在网上搜了些这方面的文档,感觉还是看懂了的,但是当在实际应用中,一遇到,又不会了。
      

  6.   

    如果你不反感使用 eval 函数,那么可以这样写
    $r = array();
    foreach($ar as $v) {
      $k = "r['" . join("']['", str_split(array_shift($v), 2)) ."']['value']";
      eval("\$$k = \$v;");
    }
      

  7.   

    递归呀!
    生成的不是一个树状数组吗?function func($ar) {
      foreach($ar as $k=>$v) {
        if($k == 'value') {
          // 输出本级的数据
        }else {
          func($v);
        }
      }
    }
      

  8.   

    按照你的提示,我向下面写了下去但是现在问题是,我不知道怎么判断这个子分类结束了。结束了,我得加上</dd> 或者说是 </div>还有一个问题,现在遍历出来的数组只有前3个元素 大分类一个,二维分类一个 三级分类一个。
    可以帮我看看问题在什么地方吗?别外,我还想问一个问题,我数据库里得到源数组,我用什么函数输出字符串来,人家拿着就可以用这个数组? public function func($arr,$count,$beforcount,$spList){
    foreach($arr as $key => $val){
    if( $key == 'value') {
    if($count==1){
    $html .= '<div class="right_nav" id="menu_'.$val["t_family_id"].'">';
    } else if($count==2 ){
    $html .= '<dt class="lef"><h1>'.$val["t_name"].'</h1></dt><dd>';
    } else if( $count==3 ){
    $html .= '<a href="">'.$val["t_name"].'</a>';
    }
    $spList = array_merge($spList, array($html));
    array_shift($arr);

    } else {
    $beforcount = $count;
    $count++;
    $this->func($val,$count,$beforcount,$spList);
    }
    }
    if(count($arr)==0){
    $s_html = '';
    foreach($spList as $key  => $val){
    $s_html = $s_html.$val;
    }
    echo "<pre>";print_r($spList);exit();
    }
    }
      

  9.   

    用 var_export(数组) 得到的是 php 代码,拿来就能用
      

  10.   

    你给出用 var_export(数组) 得到的结果
    给你看看
      

  11.   


    <?php
    array (
      10 => 
      array (
        'value' => 
        array (
          't_id' => '4092',
          't_name' => '女装',
          't_family_id' => '10',
          't_orders' => NULL,
          't_re' => NULL,
        ),
        '01' => 
        array (
          'value' => 
          array (
            't_id' => '4099',
            't_name' => '上装',
            't_family_id' => '1001',
            't_orders' => NULL,
            't_re' => NULL,
          ),
          '01' => 
          array (
            'value' => 
            array (
              't_id' => '4123',
              't_name' => 'T恤/卫衣',
              't_family_id' => '100101',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '02' => 
          array (
            'value' => 
            array (
              't_id' => '4124',
              't_name' => '针织衫/毛衣',
              't_family_id' => '100102',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '03' => 
          array (
            'value' => 
            array (
              't_id' => '4125',
              't_name' => '衬衫/雪纺衫',
              't_family_id' => '100103',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '04' => 
          array (
            'value' => 
            array (
              't_id' => '4126',
              't_name' => '小西服/小外套',
              't_family_id' => '100104',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '05' => 
          array (
            'value' => 
            array (
              't_id' => '4127',
              't_name' => '风衣/呢大衣',
              't_family_id' => '100105',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '06' => 
          array (
            'value' => 
            array (
              't_id' => '4128',
              't_name' => '背心/吊带衫',
              't_family_id' => '100106',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '07' => 
          array (
            'value' => 
            array (
              't_id' => '4129',
              't_name' => '马甲',
              't_family_id' => '100107',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '08' => 
          array (
            'value' => 
            array (
              't_id' => '4130',
              't_name' => '棉衣/棉服',
              't_family_id' => '100108',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '09' => 
          array (
            'value' => 
            array (
              't_id' => '4131',
              't_name' => '羽绒服',
              't_family_id' => '100109',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          10 => 
          array (
            'value' => 
            array (
              't_id' => '4132',
              't_name' => '皮衣/皮草',
              't_family_id' => '100110',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
        ),
        '02' => 
        array (
          'value' => 
          array (
            't_id' => '4100',
            't_name' => '下装',
            't_family_id' => '1002',
            't_orders' => NULL,
            't_re' => NULL,
          ),
          '01' => 
          array (
            'value' => 
            array (
              't_id' => '4133',
              't_name' => '裤子',
              't_family_id' => '100201',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '02' => 
          array (
            'value' => 
            array (
              't_id' => '4134',
              't_name' => '牛仔裤',
              't_family_id' => '100202',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '03' => 
          array (
            'value' => 
            array (
              't_id' => '4135',
              't_name' => '裤袜/丝袜/打底裤',
              't_family_id' => '100203',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
        ),
        '03' => 
        array (
          'value' => 
          array (
            't_id' => '4101',
            't_name' => '裙',
            't_family_id' => '1003',
            't_orders' => NULL,
            't_re' => NULL,
          ),
          '01' => 
          array (
            'value' => 
            array (
              't_id' => '4136',
              't_name' => '连衣裙',
              't_family_id' => '100301',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '02' => 
          array (
            'value' => 
            array (
              't_id' => '4137',
              't_name' => '半身裙',
              't_family_id' => '100302',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
        ),
      ),
      20 => 
      array (
        'value' => 
        array (
          't_id' => '4093',
          't_name' => '男装',
          't_family_id' => '20',
          't_orders' => NULL,
          't_re' => NULL,
        ),
        '01' => 
        array (
          'value' => 
          array (
            't_id' => '4102',
            't_name' => '上装',
            't_family_id' => '2001',
            't_orders' => NULL,
            't_re' => NULL,
          ),
          '01' => 
          array (
            'value' => 
            array (
              't_id' => '4138',
              't_name' => 'T恤',
              't_family_id' => '200101',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '02' => 
          array (
            'value' => 
            array (
              't_id' => '4139',
              't_name' => '衬衫',
              't_family_id' => '200102',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '03' => 
          array (
            'value' => 
            array (
              't_id' => '4140',
              't_name' => '外套',
              't_family_id' => '200103',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '04' => 
          array (
            'value' => 
            array (
              't_id' => '4141',
              't_name' => 'POLO衫',
              't_family_id' => '200104',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '05' => 
          array (
            'value' => 
            array (
              't_id' => '4142',
              't_name' => '针织衫/毛衣',
              't_family_id' => '200105',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '06' => 
          array (
            'value' => 
            array (
              't_id' => '4143',
              't_name' => '卫衣',
              't_family_id' => '200106',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '07' => 
          array (
            'value' => 
            array (
              't_id' => '4144',
              't_name' => '羽绒服',
              't_family_id' => '200107',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
        ),
        '02' => 
        array (
          'value' => 
          array (
            't_id' => '4103',
            't_name' => '下装',
            't_family_id' => '2002',
            't_orders' => NULL,
            't_re' => NULL,
          ),
          '01' => 
          array (
            'value' => 
            array (
              't_id' => '4145',
              't_name' => '裤子',
              't_family_id' => '200201',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
        ),
        '03' => 
        array (
          'value' => 
          array (
            't_id' => '4104',
            't_name' => '配件',
            't_family_id' => '2003',
            't_orders' => NULL,
            't_re' => NULL,
          ),
          '01' => 
          array (
            'value' => 
            array (
              't_id' => '4146',
              't_name' => '男鞋',
              't_family_id' => '200301',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '02' => 
          array (
            'value' => 
            array (
              't_id' => '4147',
              't_name' => '运动鞋',
              't_family_id' => '200302',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
          '03' => 
          array (
            'value' => 
            array (
              't_id' => '4148',
              't_name' => '箱包票夹',
              't_family_id' => '200303',
              't_orders' => NULL,
              't_re' => NULL,
            ),
          ),
        ),
      ),
    )
    ?>
      

  12.   

    这样写,格式你自己控制
    function func($ar) {
      if(! is_array($ar)) return;
      foreach($ar as $key=>$item) {
        echo '<dl>';
        foreach($item as $k=>$t)
          if($k == 'value') {
            echo "<dt>$key</dt>";
            foreach($t as $v) echo "<dd>$v</dd>";
          }else func($t);
        echo '</dl>';
      }
    }