为了账号安全,请及时绑定邮箱和手机立即绑定

JSON 解码 foreach -> 仅交付 1 行

JSON 解码 foreach -> 仅交付 1 行

PHP
POPMUISE 2021-11-05 13:09:07
我的代码只交付 1 行。首先。此 JSON 包含 3000 行。有谁知道为什么?谢谢!if (!empty($_GET["cuit"])){    $cuit = $_GET["cuit"];    $directorioDocs = 'data/docs/';    $data = file_get_contents("data/data.json");    $proveedores = json_decode($data, true);    $i = 0;    foreach ($proveedores as $proveedor) {        if ($cuit == $proveedor[$i]['cuit']) {            $proveedorArray = array(                "cuit" => $proveedor[$i]['cuit'],            );        }        else {$proveedorArray = array("Data" => "Debe ingresar un cuit");        }        $i = $i + 1;    }    echo json_encode($proveedorArray);}else{    $proveedorArray = array("Data" => "Debe ingresar un cuit");    echo json_encode($proveedorArray);}
查看完整描述

2 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

我告诉你解决方案是在分析json时找到的

我用这个工具做到了->

https://jsonlint.com/

我错过了这个->

foreach ($proveedores['data'] 作为 $provedor) {

同时删除已经不需要的索引 [0]

就是这样

谢谢


查看完整回答
反对 回复 2021-11-05
?
富国沪深

TA贡献1790条经验 获得超9个赞

$proveedorArray = array(

    "cuit" => $proveedor[$i]['cuit'],

);

通过循环的每次迭代创建一个新数组。您需要附加:


// assuming each item in the parent array should be another array

$proveedorArray[] = array(

    "cuit" => $proveedor[$i]['cuit'],

);

您还必须else在循环内对您的情况执行相同的操作。


查看完整回答
反对 回复 2021-11-05
  • 2 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信