拼接字符问题.............

PHP code
array(
    'a'=>array(
        'x1'=>1,
        'x2'=>1,
        'x3'=>array(
            'y1'=>1,
            'y2'=>1,
            'y3'=>1
        ),
        'x4'=>1
    ),
    'b'=>array(
        'f1'=>1,
        'f2'=>array(
            't1'=>1,
            't2'=>1,
            't3'=>1
        ),
        'f3'=>1,
        'f4'=>1
    )
)


如何将以上的数组拼接成
a,a-x1,a-x2,a-x3,a-x3-y1,a-x3-y2,a-x3-y3,a-x4,b,b-f1,b-f2,b-f2-t1,b-f2-t2,b-f2-t3,b-f3,b-f4

作者: iisos   发布时间: 2011-05-31

PHP code
$ar = array(
    'a'=>array(
        'x1'=>1,
        'x2'=>1,
        'x3'=>array(
            'y1'=>1,
            'y2'=>1,
            'y3'=>1
        ),
        'x4'=>1
    ),
    'b'=>array(
        'f1'=>1,
        'f2'=>array(
            't1'=>1,
            't2'=>1,
            't3'=>1
        ),
        'f3'=>1,
        'f4'=>1
    )
);
$arResult = array();
foreach($ar as $k1=> $v1) {
   $arResult[] = $k1;
   foreach($v1 as $k2=>$v2) {
      if (!is_array($v2)) $arResult[] = "{$k1}-{$k2}";
      else {
         foreach($v2 as $k3=>$v3) $arResult[] = "{$k1}-{$k2}-{$k3}";
      }
   }
}
echo implode(',',$arResult);

作者: T5500   发布时间: 2011-05-31

这个数组层级是未知的,可能是6级的
如:
$ar = array(
  'a'=>array(
  'x1'=>1,
  'x2'=>1,
  'x3'=>array(
  'y1'=>1,
  'y2'=>1,
'y3'=>array(
'l1'=>1,
'l2'=>1
) ),
  'x4'=>1
  ),
  'b'=>array(
  'f1'=>1,
  'f2'=>array(
  't1'=>1,
  't2'=>1,
  't3'=>1
  ),
  'f3'=>1,
  'f4'=>1
  )
);

作者: iisos   发布时间: 2011-05-31

有点问题,修改一下:
PHP code
$arResult = array();
foreach($ar as $k1=> $v1) {
   $arResult[] = $k1;
   foreach($v1 as $k2=>$v2) {
      $arResult[] = "{$k1}-{$k2}";
      if (is_array($v2)) foreach($v2 as $k3=>$v3) $arResult[] = "{$k1}-{$k2}-{$k3}";
   }
}
echo implode(',',$arResult);
//output
//a,a-x1,a-x2,a-x3,a-x3-y1,a-x3-y2,a-x3-y3,a-x4,b,b-f1,b-f2,b-f2-t1,b-f2-t2,b-f2-t3,b-f3,b-f4

作者: T5500   发布时间: 2011-05-31

这个数组层级是未知的,可能是6级的
如:
PHP code

array(
    'a'=>array(
        'x1'=>1,
        'x2'=>1,
        'x3'=>array(
            'y1'=>1,
            'y2'=>1,
[color=#FF0000]            'y3'=>array(
               'l1'=>1,
               'l2'=>1,
               'l3'=>1
            )[/color]
        ),
        'x4'=>1
    ),
    'b'=>array(
        'f1'=>1,
        'f2'=>array(
            't1'=>1,
            't2'=>1,
            't3'=>1
        ),
        'f3'=>1,
        'f4'=>1
    )
);

作者: iisos   发布时间: 2011-05-31