Php 循环通过嵌套数组向数组 [duplicate] 添加新的键值对

Php looping though nested array to add new key value pair to array [duplicate]

提问人:Frederik Nielsen 提问时间:12/12/2022 最后编辑:Frederik Nielsen 更新时间:1/26/2023 访问量:261

问:

并尝试添加额外的行(key : value)。所以这是我的循环:

$newarray = [];
foreach($allJobs as $allJob)
{
 for($i = 0; $i < 2 ; $i++){
    $allJob->bku = $i;
    $newarray[] = $allJob;
 }
}

现在输出:

        Array
(
[0] => stdClass Object
    (
        [id] => CFF9B1A6-37B8-4000-B058-03DC648B5289
        [name] => Kreditor rapporter til RE pkt. 5 
        [bku] => 1
    )

[1] => stdClass Object
    (
        [id] => CFF9B1A6-37B8-4000-B058-03DC648B5289
        [name] => Kreditor rapporter til RE pkt. 5 
        [bku] => 1
    )

但正如你所见,最后一个键值对是相同的 - [bku] => 1;

我想要什么:

      Array
(
[0] => stdClass Object
    (
        [id] => CFF9B1A6-37B8-4000-B058-03DC648B5289
        [name] => Kreditor rapporter til RE pkt. 5 
        [bku] => 0
    )

[1] => stdClass Object
    (
        [id] => CFF9B1A6-37B8-4000-B058-03DC648B5289
        [name] => Kreditor rapporter til RE pkt. 5 
        [bku] => 1
    )

因此,它会在嵌套循环中增加我的额外行 bku。

PHP 数组 for 循环 嵌套

评论

1赞 mickmackusa 12/13/2022
3v4l.org/Ucnvg

答:

1赞 Frederik Nielsen 12/13/2022 #1

所以我找到了一个解决方案:

我已将其从stdClass对象转换为数组,并按如下方式进行:

$array = json_decode(json_encode($allJobs), true);
$newarray = [];

foreach($array as $allJob) {
 for($i = 0;  $i < 2 ; $i++){
     $allJob['bku'] = $i;
     $newarray[] = $allJob;
     }
}

然后它在我的嵌套循环中正确计数。