拼接字符问题.............
PHP code
如何将以上的数组拼接成
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
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
)
);
如:
$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
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
如:
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