-1

最容易直接进入代码:

所需格式:

0 => 
  array (size=3)
    0 => string '6100' (length=4)
    1 => string '6102' (length=4)
    2 => string '2' (length=1)
1 => 
  array (size=3)
    0 => string '6101' (length=4)
    1 => string '1' (length=1)
    2 => string '6' (length=1)
2 => 
  array (size=2)
    0 => string '7' (length=1)
    1 => string '5' (length=1)

我可以很容易地构造数组,但参数如下:

由这些参数设计的第一级数组:

$construct  = 
array (size=3)
  0 => string '3' (length=1)
  1 => string '3' (length=1)
  2 => string '2' (length=1)

二级参数:

$ids =
array (size=8)
  0 => string '6100' (length=4)
  1 => string '6102' (length=4)
  2 => string '6101' (length=4)
  3 => string '1' (length=1)
  4 => string '7' (length=1)
  5 => string '5' (length=1)
  6 => string '2' (length=1)
  7 => string '6' (length=1)

第二级 $ids 的顺序没有区别。

4

1 回答 1

0

这就是我想你要问的。如果需要的$construct元素多于$ids.

$ids = array('6100', '6102', '6101', '1', '7', '5', '2', '6');
$construct = array('3', '3', '2');

$result = array();

for($i=0, $c=0; $c < count($construct); $i+=$construct[$c], $c+=1)
  array_push($result, array_slice($ids, $i, $construct[$c]));

var_dump($result);

>>> array(3) { 
               [0]=> array(3) { [0]=>"6100", [1]=>"6102", [2]=>"6101" }
               [1]=> array(3) { [0]=>"1",    [1]=>"7",    [2]=>"5"    }
               [2]=> array(2) { [0]=>"2",    [1]=>"6"                 }
             }                                                                     
于 2013-07-23T15:35:12.700 回答