在php的全局数组上压入值


Pushing value on a global array in php

我在将值压入全局数组时遇到了一个问题。

用户上传多个文档。每次他上传一个文档,一个web服务被调用,返回"id"answers"type"(工作正常)。我需要将其存储在一个数组中,以便我可以将其编码为JSON并在用户单击Submit按钮时发送它。

我的代码是:
//global variable
<?php
$idarray = array();
$typearray = array();
?>
//form
<form method="post">
<input type="submit" name="upload" value="Upload">
<input type="submit" name="submit" value="Submit">
</form>
<?php
if(isset($_POST['upload']))
{
   include 'webservice_call.php';           
   $url='http://localhost:8080/MyProject/getEntityRequest';
   $response=curl_get_call($url); //this function is inside webservicecall.php
   $json_string = json_decode($response);
   $id=$json_string->gstdtls->entcd; //this is working fine
   $ty=$json_string->gstdtls->stcd; //this is working fine
   func1($idarray, $typearray, $id, $ty);
}
if(isset($_POST['submit']))
{
   $docls=array();
   global $idarray;
   global $typearray;
   for ($i=0; $i < sizeof($idarray); $i++) { 
   $docls[] =  array (
            'id' => $idarray[$i],
            'ty' => $typearray[$i],         
             );
   }
$json_formatted['docls']=$docls;
echo json_encode($json_formatted);
}
function func1($idarray, $typearray, $a, $b){
   array_push($idarray, $a);
   array_push($typearray, $b);
}
?>

当用户最终提交时,它应该以编码格式给我一个数组的内容。这是不可能的。我知道我没有以它应该使用的方式使用全局数组。

你需要的是存储值的地方,如数据库或会话,而不是数组当你调用上传和当你调用提交按钮检索这些值,并将它们转换为json和回显它们。

下面是一个使用session 的例子
        <?php
        $json_formatted=array();
        if (!session_start()) {
            session_start();
        }
        ?>

        <?php
        if(isset($_POST['upload']))
        {
           $_SESSION["idarray"][]=rand(0,5);
           $_SESSION["typearray"][]=rand(0,5);
        }
        if(isset($_POST['submit']))
        {
           $docls=array();
           $idarray=$_SESSION["idarray"];
           $typearray=$_SESSION["typearray"];
           for ($i=0; $i < sizeof($idarray); $i++) { 
           $docls[] =  array (
                    'id' => $idarray[$i],
                    'ty' => $typearray[$i],         
                     );
           }
        $json_formatted['docls']=$docls;
        echo "<pre>";
        print_r(json_encode($json_formatted));
        echo "</pre>";
        session_destroy();
        }
        function func1($idarray1, $typearray1, $a, $b){
           array_push($idarray, $a);
           array_push($typearray, $b);
        }
        ?>

        <form method="post">
        <input type="submit" name="upload" value="Upload">
        <input type="submit" name="submit" value="Submit">
        </form>