Как напечатать значения массива в три столбца? - PullRequest
1 голос
/ 24 июня 2011

Мне нужен этот вывод ..

1 3 5
2 4 6

Хочу использовать функцию Array, например, массив (1,2,3,4,5,6).Если я отредактирую этот массив как массив (1,2,3), это означает, что выходные данные должны отображаться как

1 2 3

. Концепция - это максимум 3 столбца. Если мы передадим массив (1,2,3,4), 5) Означает, что вывод должен быть

1 3 5 
2 4

Предположим, мы передадим массив (1,2,3,4,5,6,7,8,9). Значит, о / р равно

1 4 7
2 5 8
3 6 9

Максимум только 3 столбца. В зависимости от заданного ввода строки будут создаваться с 3 столбцами. Возможно ли это с помощью PHP? Я занимаюсь небольшими исследованиями и разработками в функциях Array. Я думаю, что это возможно.мне?Для получения дополнительной информации: I / p: массив (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

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Получение количества строк так же просто, как потолок (общее количество элементов / элементов в строке) . Все, что вам нужно сделать, это скопировать элементы из одного одномерного массива в другой двумерный массив. Один из возможных методов:

<?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 голос
/ 24 июня 2011

использовать функцию 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))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...