Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建动态ID并使用最后一个循环作为父ID_Php_Loops_For Loop - Fatal编程技术网

Php 创建动态ID并使用最后一个循环作为父ID

Php 创建动态ID并使用最后一个循环作为父ID,php,loops,for-loop,Php,Loops,For Loop,您好,我有一个问题,我该如何正确地解决这个问题: 请参见第二个循环的子ID/ID的值为3.1.1 在第二个循环之后,第二个循环的子ID必须在第三个循环中用作父ID 让我们假设在每个子循环中添加.1。父循环使用前面最后一个循环的子循环ID。 预期输出: {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,

您好,我有一个问题,我该如何正确地解决这个问题:

请参见第二个循环的子ID/
ID
的值为
3.1.1

在第二个循环之后,第二个循环的子ID必须在第三个循环中用作父ID

让我们假设在每个子循环中添加.1。父循环使用前面最后一个循环的子循环ID。 预期输出:

{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++;
}

    ?>
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}
 //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++;
}

    ?>
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:”.$a.$c.$e.$f.“,”您的ID是$a.$c.$e.$f。按
$parent=$a.$c.$e.$f你的父母也是$a.$c.$e.$f;但它的计算方式是数字和它们的“和”,而不是串联。我将它们作为字符串双重引用,但结果是sumBy
“ID:”.$a.$c.$e.$f.“,”您的ID是$a.$c.$e.$f。按
$parent=$a.$c.$e.$f你的父母也是$a.$c.$e.$f;但它的计算方式是数字和它们的“和”,而不是串联。我将它们作为字符串双引号引用,但由于使用了sumHello dude,您忘记了最后一个大括号上的{},{},{},{}
。在我重新单击upvote并再次接受您的答案之前,请选择您的答案:)@スペースタイム 现在我修好了,你好,伙计,你忘了最后一个大括号上的“{}”,“代码>{},{},{}
。在我重新单击upvote并再次接受您的答案之前,请选择您的答案:)@スペースタイム 现在我修好了