Php 创建动态ID并使用最后一个循环作为父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
的值为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并再次接受您的答案之前,请选择您的答案:)@スペースタイム 现在我修好了