Laravel - 在阵列上循环

时间:2016-06-25 09:23:20

标签: php arrays laravel laravel-5

我有这样的陈述:

result:
0:{
    commentContent:"foo"
}
1:{
    commentContent:"bar"
}

我想在commentContent中添加结果数组的数量。这就是我想要的:

result:
0:{
    commentContent:"foo0"
}
1:{
    commentContent:"bar1"
}

此时此刻,我有:(字面意思不正确)

$commentList[0]['commentContent'] = $commentList[0]['commentContent']+'0';
$commentList[1]['commentContent'] = $commentList[1]['commentContent']+'1';

如何使用foreach在Laravel控制器中执行此操作?

4 个答案:

答案 0 :(得分:0)

你需要在php中使用。(点)来连接:

$commentList[0]['commentContent'] = $commentList[0]['commentContent'].'0';
$commentList[1]['commentContent'] = $commentList[1]['commentContent'].'1';

OR

$commentList[0]['commentContent'] .= '0';
$commentList[1]['commentContent'] .= '1';

使用foreach循环:

foreach ($comment_list as $key=>$val) {
    $comment_list[$key]['commentContent'] = $val['commentContent'] . $key;
}

答案 1 :(得分:0)

使用常用的foreach并将键附加到字符串

foreach ($commentList as $k => &$i) 
    $i['commentContent'] = $i['commentContent'] . $k;

答案 2 :(得分:0)

检查一下:

$result = [
            0 => [
                'commentContent' => 'foo'
            ],
            1 => [
                'commentContent' => 'bar'
            ]
        ];

        foreach ($result as $index => &$array) {
            foreach ($array as &$value) {
                $value .= $index;
            }
        }
        var_dump($result);

这将打印:

array (size=2)
  0 => 
    array (size=1)
      'commentContent' => string 'foo0' (length=4)
  1 => &
    array (size=1)
      'commentContent' => &string 'bar1' (length=4)

希望这有帮助。

答案 3 :(得分:0)

我认为更清洁的方法是使用laravel的集合来做到这一点。

$result = [
    0 => [
        'commentContent' => 'foo'
    ],
    1 => [
        'commentContent' => 'bar'
    ]
];

$updatedResult = collect($result)->map(function ($value, $key) {
    return $value['commentContent'] . $key;
});

有关详细信息,请查看文档。

https://laravel.com/docs/5.2/collections