Создание динамического идентификатора и использование последнего цикла в качестве родительского идентификатора - PullRequest
0 голосов
/ 26 апреля 2018

Здравствуйте, у меня проблема с тем, как мне правильно это сделать: enter image description here

см. идентификатор ребенка / ID второго цикла имеетзначение 3.1.1

после этого второго цикла дочерний идентификатор второго цикла должен использоваться в 3-м цикле в качестве родительского идентификатора .

скажем, в каждом цикле ребенка добавить .1.и родитель использует идентификатор ребенка последнего цикла перед ним. Ожидаемый результат:

{ID:3.1,Parent:3},
{ID:3.2,Parent:3},
{ID:3.1.1,Parent:3.1},
{ID:3.2.1,Parent:3.2},
{ID:3.1.1.1,Parent:3.1.1},
{ID:3.2.1.1,Parent:3.2.1},
{ID:3.1.1.1.1,Parent:3.1.1.1},
{ID:3.2.1.1.1,Parent:3.2.1.1}
 //and so on depends on loop count 

Мой пробный код:

<?php 
$count = 6;
$a = "3.";
$b = "3";
$c = 1;
$e = "";
$f = "";
echo "<pre>";
for ($i=1; $i <=$count; $i++){
    if ($c == 1){
     $d =1;
    }
    if ($c == 2){
        $d = 2;
    }
    echo "{";
    echo "ID:".$a.$c.$e.$f.",";



    $parent = $a.$c.$e.$f;


    echo "Parent:".$parent;
    echo "}";
    if($i == $count){
    }
    else{
    echo ",";
    }

    if ($c == 2){

        $c = 0;

       $e =".1";
    }
    $f += $e;
    $c++;
}

    ?>

Результат логической ошибки:

{ID:3.1,Parent:3.1},
{ID:3.20,Parent:3.20},
{ID:3.1.10.1,Parent:3.1.10.1},
{ID:3.2.10.2,Parent:3.2.10.2},
{ID:3.1.10.3,Parent:3.1.10.3},
{ID:3.2.10.4,Parent:3.2.10.4}

Подробнее? нажмите здесь

1 Ответ

0 голосов
/ 26 апреля 2018
function loop(array $parents, $need)
{
    $children = [];
    $isLast = $need === 1;
    $lastKey = count($parents) - 1;
    foreach ($parents as $key => $parent) {
        $id = $parent === 3 ? $key + 1 : 1;
        $children[] = $child = "$parent.$id";
        $comma = $isLast && $key === $lastKey ? '' : ',';
        echo "{ID:$child,Parent:$parent}$comma" . "<br/>";
    }

    $need--;

    if ($need) {
        return loop($children, $need);
    }

    return $children;
}


loop([3, 3], 4);

выход

{ID:3.1,Parent:3},
{ID:3.2,Parent:3},
{ID:3.1.1,Parent:3.1},
{ID:3.2.1,Parent:3.2},
{ID:3.1.1.1,Parent:3.1.1},
{ID:3.2.1.1,Parent:3.2.1},
{ID:3.1.1.1.1,Parent:3.1.1.1},
{ID:3.2.1.1.1,Parent:3.2.1.1}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...