Git Hub
коротко

Задание: Рекурсия

25 мая 2016, 14:02

Дано

Нужно написать код, который из массива выведет то что приведено ниже в комментарии.

$x = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h');
/*


print_r($x) - должен выводить это:
Array
(
    [h] => Array
        (
            [g] => Array
                (
                    [f] => Array
                        (
                            [e] => Array
                                (
                                    [d] => Array
                                        (
                                            [c] => Array
                                                (
                                                    [b] => Array
                                                        (
                                                            [a] =>
                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

);*/

Решение

$x = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h');

function d($arg){
    echo '<pre>';
    print_r($arg);
    echo '</pre>';
}

class Recurse{
    public static function get($x){
        $y = array_pop($x);

        if (!empty($x)){
            return  array( $y=>self::get($x));
        }
        else {
            return array($y=>false);
        }
    }

}

d(Recurse::get($x));

Вывод

Поделиться
Запинить
Популярное