Задача №9 - Вывести массив "ёлочкой"

Задачи №9 из этого списка

Условие задачи:

Задайте случайным образом массив из N элементов. Выведите его на экран "ёлочкой"

Мое решение:

<?php
function createArray ($m){
    for ($i = 0; $i < $m; $i++){
        $mass[$i] = $i + 1;
    }
    return $mass;
}
$arr = createArray(rand(10, 15));
echo '<pre>';
var_dump($arr);

function printTree($a){
    $long = 1;
    for ($i = 0; $i < count($a); $i++){
        $b = array_slice($a, $i, $long);
        for ($j = 0; $j < count($b); $j++){
            echo $b[$j] . ', ';
        }
        echo '<br>';
        $a = array_slice($a, $long-1);
        $long++;
    }
}
printTree($arr);

Key Words for FKN + antitotal forum (CS VSU):

melisa's picture

Рекомендую рассмотреть наиболее простые решения этой задачи (синтаксис Паскаль), без использования array_slice, и реализовать на php (вникнув в смысл).

<?php
function createArray ($m){
    for ($i = 0; $i < $m; $i++){
        $massif[$i] = $i + 1;
    }
    return $massif;
}

function printTree ($a)
{
    echo '<br>';
    $k = 1; //количество символов, которое можно вывести на экран в итерации
    $j = 0; //сколько исмволов мы выели в предыдущей итерации
    for ($i = 0; $i < count($a); $i++) {
        echo $a[$i] . ', ';
        $j++;
        if ($j >= $k) {
            echo '<br>';
            $j = 0;
            $k++;
        }
    }
}

$arr = createArray(rand(10, 15));
echo '<pre>';
var_dump($arr); 
printTree($arr);

<?php
function createArray ($m){
    for ($i = 0; $i < $m; $i++){
        $massif[$i] = $i + 1;
    }
    return $massif;
}

function printTree ($a)
{
    echo '<br>';
    $i = 0;//открываем просто счетчик
    $k = 1;//задаем количесвто символов первой строки
    while ($i < count($a)) {//контролируем диапазон
        for ($j = 1; $j <= $k; $j++) {//вывод очередной строки
            if ($i < count($a)) {//если мы все еще в диапазоне...
                echo $a[$i] . ', ';//... то выводим очередное значение с пробелом...
                $i++;//... и готовим следующее
            } else {
                break;
            }
        }
        echo '<br>';//переводим строку
        $k++;//и инкременируем колчество символов
    }
}
$arr = createArray(rand(10, 15));
echo '<pre>';
var_dump($arr);
printTree($arr);
melisa's picture

принято