2011-06-24 11 views
1

私は、配列(1,2,3,4,5,6)のような配列の機能を使用したい3列に配列の値を印刷するにはどうすればよいですか?

1 3 5 
2 4 6 

。これの出力が必要です。私が編集した場合は、アレイ(1,2,3)のように、この配列が出力さ

1 2 3 

のように表示する必要が意味概念は、我々は(1,2,3,4,5配列を与えるonly.If最大3列です))出力は

1 3 5 
2 4 

我々はアレイ(1,2,3,4,5,6,7,8,9を与えると仮定されるべきであることを意味O/Pは

1 4 7 
2 5 8 
3 6 9 

最大であることを意味3列のみ。行は3列で作成されます。これはPHPで可能ですか?Am Doing小規模な研究&配列機能の開発。これは可能だと思います。 詳細情報:I/p:array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) O/P:

1 6 11 
2 7 12 
3 8 13 
4 9 14 
5 10 15 
+1

これは、数学の問題ではありません。これは、stackoverflow、またはプログラミングを扱う他のスタックエクスチェンジサイトのいずれかに適しているようです。 –

+0

あなたはこの質問をStackoverflowに移行しますか?私はそれを行うための許可を持っていません。Please .. :) – Ramkumar

+1

私はそれを行う権限を持っていませんが、私は司会者の注目を集めています。ことができるようになります。 –

答えて

1

取得行数はceiling(行あたりの要素数/要素数の合計)と同じくらい簡単です。 1次元配列から別の2次元配列に要素をコピーするだけです。一つの可能​​な方法:

<?php 
$input = array(
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 
); 
$col = 3; 
$row = ceil(count($input)/$col); 
$output = array(); 
while(count($input)){ 
    $output[] = array_splice($input, 0, $row); 
} 
for($i = 0; $i < $row; $i++) { 
    $temp = array(); 
    for($j = 0; $j < $col; $j++) { 
     if (isset($output[$j][$i])) { 
      $temp[] = $output[$j][$i]; 
     } 
    } 
    echo implode(", ", $temp) . "\n"; 
} 

出力

1, 6, 11 
2, 7, 12 
3, 8, 13 
4, 9 
5, 10 
1

使用array_chunk()関数:http://www.php.net/manual/en/function.array-chunk.php

$example_array = array('a', 'b', 'c', 'd', 'e'); 
$chunked_array = array_chunk($example_array, 3)); 

$のchunked_array 2個のサブアレイを有するアレイであろう:配列(配列(a、b、c)は、配列(D、E))

関連する問題