多维数组的排列--待研究-----

 1 <?php
 2 function arrange($arr, $i, $res)
 3 {
 4     if (is_array($arr)) {
 5         if (is_array($arr[$i])) {
 6             foreach ($arr[$i] as $k => $v) {
 7                 if(is_array($v)){
 8                     foreach($v as $k1=>$v1){
 9                         if(is_array($v1)){
10                             //这边怎么写????再不能耽误时间了,,,,,,不会写了
11                         }else{
12                             $res[$i] = $v1;
13                             //如果数组排列到底层则输出
14                             if ($i + 1 >= count($arr)) {
15                                 $a = implode("", $res);
16                                 echo $a . "\n";
17                             } else {
18                                 arrange($arr, $i + 1, $res);
19                             }
20                         }
21                     }
22                 }else{
23                     $res[$i] = $v;
24                     //如果数组排列到底层则输出
25                     if ($i + 1 >= count($arr)) {
26                         $a = implode("", $res);
27                         echo $a . "\n";
28                     } else {
29                         arrange($arr, $i + 1, $res);
30                     }
31                 }
32             }
33         } else {
34             $res[$i] = $arr[$i];
35             if ($i + 1 >= count($arr)) {
36                 $a = implode("", $res);
37                 echo $a . "\n";
38             } else {
39                 arrange($arr, $i + 1, $res);
40             }
41         }
42     } else {
43         $res[$i] = $arr;
44 
45     }
46 }
47 
48 $arr = ['A',
49     [1, 3, ['a', [0,9] ]   ],
50 ];
51 arrange($arr, 0, [0]);
52 /*
53  * 第一个参数是要排列,第二个是初始化排列数组的下标,必须为0否则会出错,
54  * 第三个参数初始化存储打印元素的数组也必须为[0]
55  */

 

posted @ 2016-08-02 01:00  网中人  阅读(142)  评论(0编辑  收藏  举报