首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

急数字重组计算有关问题

2013-06-25 
急.....数字重组计算问题本帖最后由 staryjk 于 2013-05-15 12:58:27 编辑问题描述:现在有一组数字需要计

急.....数字重组计算问题
本帖最后由 staryjk 于 2013-05-15 12:58:27 编辑 问题描述:
现在有一组数字需要计算重组后总数,以最快的速度计算出总数.
数字不一定就是给出的这些,也有可能是其它数字
数字:
例一
1->0123
2->01234
3->678
总数:60


例二
1->0123456789
2->0123456789
3->01234
总数:500


写一个方法计算出重组后的总数和重组后的号码


[解决办法]
这个意思?

$ar = array(
'0123',
'01234',
'678',
);

print_r(foo($ar));
function foo(&$ar, $i=0) {
  $res = array();
  if($i+1 <count($ar)) {
     $t = foo($ar, $i+1);
     foreach(str_split($ar[$i]) as $v) {
       foreach($t as $r) $res[] = $v . $r;
     }
  }else $res = str_split($ar[$i]);
  return $res;
}
Array
(
    [0] => 006
    [1] => 007
    [2] => 008
    [3] => 016
    [4] => 017
    [5] => 018
    [6] => 026
    [7] => 027
    [8] => 028
    [9] => 036
    [10] => 037
    [11] => 038
    [12] => 046
    [13] => 047
    [14] => 048
    [15] => 106
    [16] => 107
    [17] => 108
    [18] => 116
    [19] => 117
    [20] => 118
    [21] => 126
    [22] => 127
    [23] => 128
    [24] => 136
    [25] => 137
    [26] => 138
    [27] => 146
    [28] => 147
    [29] => 148
    [30] => 206
    [31] => 207
    [32] => 208
    [33] => 216
    [34] => 217
    [35] => 218
    [36] => 226
    [37] => 227
    [38] => 228
    [39] => 236
    [40] => 237
    [41] => 238
    [42] => 246
    [43] => 247


    [44] => 248
    [45] => 306
    [46] => 307
    [47] => 308
    [48] => 316
    [49] => 317
    [50] => 318
    [51] => 326
    [52] => 327
    [53] => 328
    [54] => 336
    [55] => 337
    [56] => 338
    [57] => 346
    [58] => 347
    [59] => 348
)

[解决办法]

看来我还是要多看PHP手册,又被xu版大人秒杀了。
[解决办法]
你的 $strArr 数组键名重复了,因此后面的覆盖前面的。print_r($strArr); 就知道了。
[解决办法]
$strArr = array(
   1 => 0,
   3 => 1,
   6 => 2,
  10 => 3,
  15 => 4,
  21 => 5,
  28 => 6,
  36 => 7,
  45 => 8,
  55 => 9,
  63 => 10,
  69 => 11,
  73 => 12,
  75 => 13,
  75 => 14,
  73 => 15,
  69 => 16,
  63 => 17,
  55 => 18,
  45 => 19,
  36

 => 20,
  28 => 21,
  21 => 22,
  15 => 23,
  10 => 24,
   6 => 25,
   3 => 26,
   1 => 27
);
套红的下标将覆盖上面已有的下标

热点排行