2012-03-12 19 views
0

私は出力し、このコード配列出力 - インデックス構造における順序

$nArr = array('A', 'B', 'C', 'D', 'E', 'F'); 

$counter = 3; 
while ($counter > 0) { 
    $chunkedValues[$counter][0] = 1; 
    for ($j = 0 ; $j < $counter ; $j++) { 
     $chunkedValues[$counter][$j + 1] = $nArr[$j]; 
    } 
    $nArr = array_slice($nArr, $counter--); 
} 
var_dump($chunkedValues); 

あります

array 
    3 => 
    array 
     0 => int 1 
     1 => string 'A' (length=1) 
     2 => string 'B' (length=1) 
     3 => string 'C' (length=1) 
    2 => 
    array 
     0 => int 1 
     1 => string 'D' (length=1) 
     2 => string 'E' (length=1) 
    1 => 
    array 
     0 => int 1 
     1 => string 'F' (length=1) 

をしかし、私は、このインデックス構造必要があります:私はしたい

array 
    0 => 
    array 
     0 => int 1 
     1 => string 'A' (length=1) 
     2 => string 'B' (length=1) 
     3 => string 'C' (length=1) 
    1 => 
    array 
     1 => int 1 
     2 => string 'D' (length=1) 
     3 => string 'E' (length=1) 
    2 => 
    array 
     2 => int 1 
     3 => string 'F' (length=1) 

ceilでループを回避します。

御時間ありがとうございます。

答えて

2
$nArr = array('A', 'B', 'C', 'D', 'E', 'F'); 

$chunkedValues = array(); 
$gCounter = 0; 
for ($counter = 3, $start = 0; $counter > 0; $counter--, $start++) { 
    $arr = array($start => 1); 
    for ($j = 0; $j < $counter; $j++) $arr[]= $nArr[$gCounter++]; 
    $chunkedValues []= $arr; 
} 

var_dump($chunkedValues); 

か、要素の順序を気にしない場合:

$nArr = array('A', 'B', 'C', 'D', 'E', 'F'); 

$chunkedValues = array(); 
$gCounter = 0; 
for ($counter = 3, $start = 0; $counter > 0; $counter--, $start++) { 
    $arr = array_combine(
     range($start+1, $counter) 
     array_slice($nArr, $gCounter, $gCounter += $counter); 
    ); 
    $arr[$start] = 1; 
    $chunkedValues []= $arr; 
} 

var_dump($chunkedValues); 
+0

NOP、[0] [0]が1である必要があり、[1] [1] 1である必要があり、[2] [2]すべき:あなただけを使用することができるかもしれないように見えます

1となる。 – user947462

+0

が答えを更新しました – kirilloid

0

は、あなただけの配列を分割していますか?

$nArr = array('A', 'B', 'C', 'D', 'E', 'F'); 
$chunked = array_chunk($nArr , 3); 
var_dump($chunked); 
関連する問題