[PHP][Recursion]Извеждане на текущото ниво

Статус
Not open for further replies.
dakata__92 каза:
xlebabarov каза:
Мисля, че съм обединил достатъчно подробно. Който има необходимите познания и желае да помогне ще го направи. Ако си от неразбиращата група моля не ми оспамвай темата, особенно господина от по предния коментар. СТИГА ЗАЯЖДАНИЯ
Абе ти тъп ли си или на такъв се правиш? :!: Нищо не си "обединил" или обяснил. Щом ти изискваме трима човека по-подробно разяснение, то сметни сам колко добре си се представил... Вместо да размиваш темата сам, по-добре да беше обяснил какво искаш. ЗА ПОРЕДЕН коментар ти го казваме, ОБЯСНИ НИ какво искаш да направиш. :evil:

xlebabarov каза:
Добре, да речем, че сортираме масива с ksort($a) рекурсивно:
Код:
Array
(
    [] => Array
        (
            [ar] => Array
                (
                    [0] => 
                    [freesby] => Array
                        (
                            [0] => 
                            [johnson] => 
                            [1] => 
                        )

                    [kenneth] => 
                )

            [3] => 
            [4] => 
            [5] => 
        )

    [1] => Array
        (
            [3] => 
            [4] => 
            [5] => 
        )

)

Сега да обесня за какво точно говоря :twisted:
Резултата от изпълнението на моята горна функция е (респективно) следния:
Код:
-
-ar
0
-freesby
0
johnson
1
kenneth
3
4
5
-1
3
4
5
Затова исках да го ксортна за да добие смисъл резултата от изпълнението на функцията ксорт преди самата рекурсия. Бих искалв аргумента $pass да се задава нещо като:

Код:
[1]Стъпка
-ключ(''=>масив)стойност на $pass=>array(''=>array());
[2]Стъпка
-ключ(''=>array('ar'=>масив))стойност на $pass=>array(''=>array('ar'=>array())); 
[3]Стъпка
-ключ(''=>array('ar'=>array(0=>'')))стойност на $pass=>array(''=>array('ar'=>array(0=>true))); 
[4]Стъпка
-ключ(''=>array('ar'=>array(0=>'', 'freesby'=>масив)))стойност на $pass=>array(''=>array('ar'=>array(0=>true, 'freesby'=>array())));
Т.е. същото като @Revelation само че вместо цифра да блъска масив с ключа и стойност в $pass

Това как би се случило? Защото ползването на цифра като индекс за това на кой ключ се намира дълбочината пренебрегва ключовете стрингове.

Готово. Стига с обидите както казах или ще се обърна към Боби. Пак казвам ако не разбираш не пиши не ми е нужно обидското ти мнение. А и съществува автокорект

НЕ МИ СПАМЕТЕ ТЕМАТА
 
Дай пример за резултата, който искаш да постигнеш. Тоя масив няма никакъв смисъл... защо ще държиш празни масиви?
 
giphy.gif
 
Колеги, понеже сме гадатели да метнем малко боб и да побаем на буркан с ракия, че да разгадаем поста на нашия съфорумник. Човека вместо с 5 реда да се опита да ни разясни по-добре какво иска, твърдоглаво продължава да ни казва, че това което ни е обяснил ни е достатъчно за да му помогнем. :D
Е как да му помогнем, когато той самия не знае какво иска. Ако си бе направил труда да ни даде качествен пример с обяснение какво от този масив къде и по какъв начин иска да бъде съхранено добре. За мен да пълни излишни масиви хе така за спорта да си прави карта на масива е излишно. Товари се паметта излишно...
 
Нещо такова ли искаш? Ключ, и като стойност нивото на масива за тази прословута карта?

http://sandbox.onlinephpfunctions.com/code/e72206a639bf4719d705b29f4ef340f4f6fce709

PHP:
<?php
$array = [
    'one' => 1,
    'two' => [
        'two' => 2,
        'three' => [
            'three' => 3,
            'four' => 4
        ]
    ],
    'three' => 3,
    'four' => [
        'four' => 4,
        'five' => 5,
        'six' => [
            'six' => 6,
            'seven' => [
                'seven' => 7,
                'eight' => 8
            ]
        ]
    ]
    
];


function recursion(Array $array, $level = 0) {
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            $recursion[$key] = recursion($value, $level+1);
        } else {
            $recursion[$key] = $level;
        }
    }
	return $recursion;
}


$r = recursion($array);
print_r($r);
 
dakata__92 каза:
Колеги, понеже сме гадатели да метнем малко боб и да побаем на буркан с ракия, че да разгадаем поста на нашия съфорумник. Човека вместо с 5 реда да се опита да ни разясни по-добре какво иска, твърдоглаво продължава да ни казва, че това което ни е обяснил ни е достатъчно за да му помогнем. :D
Е как да му помогнем, когато той самия не знае какво иска. Ако си бе направил труда да ни даде качествен пример с обяснение какво от този масив къде и по какъв начин иска да бъде съхранено добре. За мен да пълни излишни масиви хе така за спорта да си прави карта на масива е излишно. Товари се паметта излишно...

То не е до памет тука, а до дизайн. Цялата гимнастика е просто глупава.
 
Revelation каза:
dakata__92 каза:
Колеги, понеже сме гадатели да метнем малко боб и да побаем на буркан с ракия, че да разгадаем поста на нашия съфорумник. Човека вместо с 5 реда да се опита да ни разясни по-добре какво иска, твърдоглаво продължава да ни казва, че това което ни е обяснил ни е достатъчно за да му помогнем. :D
Е как да му помогнем, когато той самия не знае какво иска. Ако си бе направил труда да ни даде качествен пример с обяснение какво от този масив къде и по какъв начин иска да бъде съхранено добре. За мен да пълни излишни масиви хе така за спорта да си прави карта на масива е излишно. Товари се паметта излишно...

То не е до памет тука, а до дизайн. Цялата гимнастика е просто глупава.
Зависи за какво му е нужно да има тези неща, но да съгласен съм, че е глупаво.
 
EDIT: Кода си го написах 5 мин. след като написах пояснението, щото очевадно няма кой да помогне. Ако на някой му трябва да драсне едно ЛС ще споделя. :cry:

Та какво казвахте?
 
Статус
Not open for further replies.

Горе