已知:
Array
(
[0] => prep
[1] => date
[2] => Array
(
[0] => Array
(
[0] => Array
(
[0] => pro
[1] => Array
(
[0] => Array
(
[0] => av
[1] => aj
) [1] => pro
) ) [1] => abc
[2] => Array
(
[0] => name
[1] => Array
(
[0] => Array
(
[0] => av
[1] => aj
) [1] => name
) ) ) ))
如何从已知数组生成以下形式数组:
Array
(
[0] => Array
(
[0] => prep
[1] => date
[2] => pro
) [1] => Array
(
[0] => prep
[1] => date
[2] => av
[3] => pro
) [2] => Array
(
[0] => prep
[1] => date
[2] => aj
[3] => pro
) [3] => Array
(
[0] => prep
[1] => date
[2] => abc
) [4] => Array
(
[0] => prep
[1] => date
[2] => name
) [5] => Array
(
[0] => prep
[1] => date
[2] => av
[3] => name
) [6] => Array
(
[0] => prep
[1] => date
[2] => aj
[3] => neme
))
Array
(
[0] => prep
[1] => date
[2] => Array
(
[0] => Array
(
[0] => Array
(
[0] => pro
[1] => Array
(
[0] => Array
(
[0] => av
[1] => aj
) [1] => pro
) ) [1] => abc
[2] => Array
(
[0] => name
[1] => Array
(
[0] => Array
(
[0] => av
[1] => aj
) [1] => name
) ) ) ))
如何从已知数组生成以下形式数组:
Array
(
[0] => Array
(
[0] => prep
[1] => date
[2] => pro
) [1] => Array
(
[0] => prep
[1] => date
[2] => av
[3] => pro
) [2] => Array
(
[0] => prep
[1] => date
[2] => aj
[3] => pro
) [3] => Array
(
[0] => prep
[1] => date
[2] => abc
) [4] => Array
(
[0] => prep
[1] => date
[2] => name
) [5] => Array
(
[0] => prep
[1] => date
[2] => av
[3] => name
) [6] => Array
(
[0] => prep
[1] => date
[2] => aj
[3] => neme
))
再为数组,其中元素就为与的关系,如av,aj二选一,然后加上pro是一种组合。总之就是第一层的元素3有多种
排列组合的可能性,然后我要排列出这所有可能的组合。是很乱,我都憋了好几天了也弄不出来,不知还有没有
解了,哎!盼救星阿~~~~~~~~~~~~~
$array;//原始数据
$a = array($array[0],$array[1]); //模板
$r = array(); //结果
test($array, $a);
function test($array, $a)
{
global $r;
foreach($array as $tmp){
if(!is_array($tmp)){
$tmp2 = $a;
$tmp2[] = $tmp;
$r[] = $tmp2; //没有IDE也没有手册 忘了合并数组的函数
}else {
test($tmp, $a);
}
}
}