php 如何做排列组合
1个回答
展开全部
原理相当于自己建个树,不停地在末尾里添加上子节点,最后遍历整个树。
代码如下:
<?php
$str='1=12,2=34,3=14,4=23';
$_str=explode(',',$str);
$_str=array_reverse($_str);
$_key=array();
$tree=array();
foreach($_str as $v){
$str=explode('=',$v);
$_key[]=$str[0];
$str=str_split($str[1]);
$_tree=array();
foreach($str as $node){
if(empty($tree)):
$_tree[][]=$node;
else:
foreach($tree as $_node) $_tree[]=str_split(implode($_node).$node);
endif;
}
$tree=$_tree;
}
foreach($tree as $v){
$str=array();
foreach($v as $_k=>$_v) $str[]=$_key[$_k].'='.$_v;
echo implode(',',array_reverse($str)),'<br>';
}
?>
代码如下:
<?php
$str='1=12,2=34,3=14,4=23';
$_str=explode(',',$str);
$_str=array_reverse($_str);
$_key=array();
$tree=array();
foreach($_str as $v){
$str=explode('=',$v);
$_key[]=$str[0];
$str=str_split($str[1]);
$_tree=array();
foreach($str as $node){
if(empty($tree)):
$_tree[][]=$node;
else:
foreach($tree as $_node) $_tree[]=str_split(implode($_node).$node);
endif;
}
$tree=$_tree;
}
foreach($tree as $v){
$str=array();
foreach($v as $_k=>$_v) $str[]=$_key[$_k].'='.$_v;
echo implode(',',array_reverse($str)),'<br>';
}
?>
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询