JSON 解码 foreach -> 仅交付 1 行

我的代码只交付 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);


}


POPMUISE
浏览 144回答 2
2回答

白衣染霜花

我告诉你解决方案是在分析json时找到的我用这个工具做到了->https://jsonlint.com/我错过了这个->foreach ($proveedores['data'] 作为 $provedor) {同时删除已经不需要的索引 [0]就是这样谢谢

富国沪深

$proveedorArray = array(    "cuit" => $proveedor[$i]['cuit'],);通过循环的每次迭代创建一个新数组。您需要附加:// assuming each item in the parent array should be another array$proveedorArray[] = array(    "cuit" => $proveedor[$i]['cuit'],);您还必须else在循环内对您的情况执行相同的操作。
打开App,查看更多内容
随时随地看视频慕课网APP