JSON与PHP foreach

JSON与PHP foreach,php,json,Php,Json,好的,根据你的建议,我更新了。。。默认情况下,Laravel返回JSON。。。我已将其设置为返回数组,但仍使用以下方法复制同一行: $limits = array(); foreach($pieces as $coverage_limit){ $limits[] = coveragelimit::index($coverage_limit); } return json_encode($limits); } 您只是在foreach

好的,根据你的建议,我更新了。。。默认情况下,Laravel返回JSON。。。我已将其设置为返回数组,但仍使用以下方法复制同一行:

$limits = array();
    foreach($pieces as $coverage_limit){
            $limits[] = coveragelimit::index($coverage_limit);
        }
    return json_encode($limits);
    }

您只是在
foreach()
循环中覆盖
$limits
。也许你的意思更像

foreach($pieces as $coverage_limit){        
    $limits[] = coveragelimit::index($coverage_limit);
           ^^--- array push?
}

同样,您也不会“实现”JSON而不是数组。您使用本机数据结构,然后将该结构编码为JSON。JSON是一种传输格式,您不应该在本机上处理它。

$limits数组将保存coveragelimit::index()在迭代过程中返回的最后一个值,我建议检查coveragelimit::index()返回值是否与“Marc B”的答案一致

编辑:


两者都应该返回与Marc B的答案相同的结果

只需使用php关联数组,然后使用JSON_encode($limits)转换为JSON;不太清楚您想要实现什么,但是将json_decode中的$assoc参数设置为true将直接将json字符串转换为关联数组。那么这里的实际问题是什么呢?json只是文本。你可以随心所欲地推送它,因为PHP就像对待其他文本一样对待它。一旦通过json_解码运行json,它就不再是json了。这是一个php数组或对象,您可以像使用任何其他php数组或对象一样使用它。同时,问题发生了变化:)您会转储pieces数组吗?我正在尝试循环并返回一个json对象,其中包含所有值,而不仅仅是最后一个值。$pieces var_dump:array 0=>string'L0001'(长度=5)1=>string'L0002'(长度=5)2=>字符串'L0003'(长度=5)谢谢,正如我看到的
coveragelimit::index($coverage\u limit)
给出了错误的结果well,而不是错误的结果,只是foreach循环中三次(L0001)相同的结果。
foreach($pieces as $key=>$coverage_limit) {
    $limits[$key] = coveragelimit::index($coverage_limit);
}
foreach($pieces as $coverage_limit) {
    array_push($limits, coveragelimit::index($coverage_limit));
}