数组遍历问题 遍历php 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $arr=array('10'=>array('12'=>0),'15'=>array('30'=>array('35'=>0),'31'=>array('40'=>0))); $a=array(); foreach ($arr as $k=>$v){ $a[$k][]=$k; if(is_array($v)){ foreach ($v as $kk=>$vv){ $a[$k][]=$kk; } } } var_dump($a); $arr=array('10'=>array('12'=>0),'15'=>array('30'=>array('35'=>0),'31'=>array('40'=>0),'33'=>array('42'=>0))); $a=array(); $i=0; foreach ($arr as $k=>$v){ $a[$i][]=$k; if(is_array($v)){ foreach ($v as $kk=>$vv){ $a[$i][]=$kk; if(is_array($vv)){ foreach ($vv as $kkk=>$vvv){ $j=0; if($j==0){ unset($a[$i]); $a[$i.'-'.$i][]=$k; $a[$i.'-'.$i][]=$kk; $a[$i.'-'.$i][]=$kkk; }else{ $a[$i][]=$kkk; } } } $i++; } } $i++; } var_dump($a); 最后是这样$arr=array('10'=>array('12'=>0),'15'=>array('30'=>array('35'=>0),'31'=>array('40'=>0),'33'=>array('42'=>0))); $a=array(); $i=0; foreach ($arr as $k=>$v){ $a[$i][]=$k; if(is_array($v)){ foreach ($v as $kk=>$vv){ $a[$i][]=$kk; if(is_array($vv)){ foreach ($vv as $kkk=>$vvv){ unset($a[$i]); $a[$i.'-'.$i][]=$k; $a[$i.'-'.$i][]=$kk; $a[$i.'-'.$i][]=$kkk; } } $i++; } } } var_dump(array_values($a)); $arr=array( '10'=>array( '12'=>0 ), '15'=>array( '30'=>array( '35'=>0 ), '31'=>array( '40'=>0 ) ));print_r(foo($arr));function foo($ar) { $res = array(); foreach($ar as $k=>$v) { if(is_array($v)) { foreach(foo($v) as $r) $res[] = "$k,$r"; }else $res[] = $k; } return $res;}Array( [0] => 10,12 [1] => 15,30,35 [2] => 15,31,40) 写了个方法$arr=array( '10'=>array( '12'=>0, '13'=>array( '14' => 0, '16' => array( '17' =>0 ) ) ), '15'=>array( '30'=>array( '35'=>0 ), '31'=>array( '40'=>0 ) ));function foo( $arr, &$str = '' ){ foreach($arr as $key => $value) { $str .= "," . $key; if(is_array($value)) { foo($value, $str); }else{ print_r( ltrim($str,',') ); echo '<br>'; } $str = rtrim( $str, ','.$key); }}foo($arr); $arr=array( '10'=>array( '12'=>0, '13'=>array( '14' => 0, '16' => array( '17' =>0 ) ) ), '15'=>array( '30'=>array( '35'=>0 ), '31'=>array( '40'=>0 ) ));function foo( $arr, &$str = '' ){ foreach($arr as $key => $value) { $str .= "," . $key; if(is_array($value)) { foo($value, $str); }else{ print_r( ltrim($str,',') ); echo '<br>'; } $str = rtrim( $str, ','.$key); }}foo($arr); $arr=array( '10'=>array( '12'=>0, '13'=>array( '14' => 0, '16' => array( '17' =>0 ) ) ), '15'=>array( '30'=>array( '35'=>0 ), '31'=>array( '40'=>0 ) ));function foo( $arr, &$str = '' ){ foreach($arr as $key => $value) { $str .= "," . $key; if(is_array($value)) { foo($value, $str); }else{ print_r( ltrim($str,',') ); echo '<br>'; } $str = rtrim( $str, ','.$key); }}foo($arr); $arr=array( '10'=>array( '12'=>0 ), '15'=>array( '30'=>array( '35'=>0 ), '31'=>array( '40'=>0 ) ));function my($arr,$pid=10){ static $item=array(); static $s=''; foreach($arr as $k=>$v){ if(is_array($v)){ foreach($v as $key=>$value){ $s.=$key.','; if(is_array($value)){ my($value,$k); } } }else{ $s.=$k; } $s=$pid.','.$s; $item[]=$s; $s=''; } return $item;}$arr=my($arr);array_pop($arr);print_r($arr);Array( [0] => 10,12, [1] => 15,30,35 [2] => 15,31,40) 请问谁用过cropZoom,求救,老是调试不成功!!!!! 页面跳转无法传递参数 朋友的论坛 麻烦大家 给点建议。。 怎么把一个exe功能放到php做的网站中 php调用activex的问题 php文本输入问题 php有没有那个函数 可以设置NTFS权限 (在线等)通过js提交给php的变量为汉字,在php中变成了"?" 关于session登陆不了 的老问题,不好意思再麻烦下 请问各位PHP中怎样查询出最近一个星期的记录,PHP中怎样处理时间比较,救急 大学快过了,才想起什么都不懂。英语短板,想学php,不知从那学起 关于page类中的无刷新分页中调用自定义函数是怎么做到的
$a=array();
foreach ($arr as $k=>$v){
$a[$k][]=$k;
if(is_array($v)){
foreach ($v as $kk=>$vv){
$a[$k][]=$kk;
}
}
}
var_dump($a);
$arr=array('10'=>array('12'=>0),'15'=>array('30'=>array('35'=>0),'31'=>array('40'=>0),'33'=>array('42'=>0)));
$a=array();
$i=0;
foreach ($arr as $k=>$v){
$a[$i][]=$k;
if(is_array($v)){
foreach ($v as $kk=>$vv){
$a[$i][]=$kk;
if(is_array($vv)){
foreach ($vv as $kkk=>$vvv){
$j=0;
if($j==0){
unset($a[$i]);
$a[$i.'-'.$i][]=$k;
$a[$i.'-'.$i][]=$kk;
$a[$i.'-'.$i][]=$kkk;
}else{
$a[$i][]=$kkk;
}
}
}
$i++;
}
}
$i++;
}
var_dump($a);
最后是这样
$arr=array('10'=>array('12'=>0),'15'=>array('30'=>array('35'=>0),'31'=>array('40'=>0),'33'=>array('42'=>0)));
$a=array();
$i=0;
foreach ($arr as $k=>$v){
$a[$i][]=$k;
if(is_array($v)){
foreach ($v as $kk=>$vv){
$a[$i][]=$kk;
if(is_array($vv)){
foreach ($vv as $kkk=>$vvv){
unset($a[$i]);
$a[$i.'-'.$i][]=$k;
$a[$i.'-'.$i][]=$kk;
$a[$i.'-'.$i][]=$kkk;
}
}
$i++;
}
}
}
var_dump(array_values($a));
'10'=>array(
'12'=>0
),
'15'=>array(
'30'=>array(
'35'=>0
),
'31'=>array(
'40'=>0
)
)
);print_r(foo($arr));function foo($ar) {
$res = array();
foreach($ar as $k=>$v) {
if(is_array($v)) {
foreach(foo($v) as $r) $res[] = "$k,$r";
}else $res[] = $k;
}
return $res;
}
Array
(
[0] => 10,12
[1] => 15,30,35
[2] => 15,31,40
)
'10'=>array(
'12'=>0,
'13'=>array(
'14' => 0,
'16' => array(
'17' =>0
)
)
),
'15'=>array(
'30'=>array(
'35'=>0
),
'31'=>array(
'40'=>0
)
)
);function foo( $arr, &$str = '' )
{
foreach($arr as $key => $value)
{
$str .= "," . $key;
if(is_array($value))
{
foo($value, $str); }else{
print_r( ltrim($str,',') );
echo '<br>';
}
$str = rtrim( $str, ','.$key);
}}foo($arr);
'10'=>array(
'12'=>0,
'13'=>array(
'14' => 0,
'16' => array(
'17' =>0
)
)
),
'15'=>array(
'30'=>array(
'35'=>0
),
'31'=>array(
'40'=>0
)
)
);function foo( $arr, &$str = '' )
{
foreach($arr as $key => $value)
{
$str .= "," . $key;
if(is_array($value))
{
foo($value, $str); }else{
print_r( ltrim($str,',') );
echo '<br>';
}
$str = rtrim( $str, ','.$key);
}}foo($arr);
'10'=>array(
'12'=>0,
'13'=>array(
'14' => 0,
'16' => array(
'17' =>0
)
)
),
'15'=>array(
'30'=>array(
'35'=>0
),
'31'=>array(
'40'=>0
)
)
);function foo( $arr, &$str = '' )
{
foreach($arr as $key => $value)
{
$str .= "," . $key;
if(is_array($value))
{
foo($value, $str); }else{
print_r( ltrim($str,',') );
echo '<br>';
}
$str = rtrim( $str, ','.$key);
}}foo($arr);
$arr=array(
'10'=>array(
'12'=>0
),
'15'=>array(
'30'=>array(
'35'=>0
),
'31'=>array(
'40'=>0
)
)
);
function my($arr,$pid=10){
static $item=array();
static $s='';
foreach($arr as $k=>$v){
if(is_array($v)){
foreach($v as $key=>$value){
$s.=$key.',';
if(is_array($value)){
my($value,$k);
}
}
}else{
$s.=$k;
}
$s=$pid.','.$s;
$item[]=$s;
$s='';
}
return $item;
}
$arr=my($arr);
array_pop($arr);
print_r($arr);Array
(
[0] => 10,12,
[1] => 15,30,35
[2] => 15,31,40
)