JSON解码foreach->仅传送1行

时间:2019-07-30 15:16:17

标签: php arrays json

我的代码仅传送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 个答案:

答案 0 :(得分: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情况下,您还必须执行相同的操作。

答案 1 :(得分:0)

我告诉你,在分析json时找到了解决方案

我使用此工具->

https://jsonlint.com/

我想念这个->

foreach($ proveedores ['data'] as $ proveedor){

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

就是这样

谢谢