Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中分配变量的数组值_Php - Fatal编程技术网

在php中分配变量的数组值

在php中分配变量的数组值,php,Php,在php中分配变量的数组值: Array ( [0] => stdClass Object ( [Id] => 116249 [Amount] => 51.62 [Currency] => INR [ExchangeRate] => 1 [InvoiceDate

在php中分配变量的数组值:

Array
    (
        [0] => stdClass Object
            (
                [Id] => 116249
                [Amount] => 51.62
                [Currency] => INR
                [ExchangeRate] => 1
                [InvoiceDate] => 2015-12-16T00:00:00Z
                }
       [1] => stdClass Object
            (
                [Id] => 116250
                [Amount] => 55.20
                [Currency] => KWD
                [ExchangeRate] => 1
                [InvoiceDate] => 2015-12-16T00:00:00Z
                }

       [2] => stdClass Object
            (
                [Id] => 116251
                [Amount] => 59.42
                [Currency] => USD
                [ExchangeRate] => 1
                [InvoiceDate] => 2015-12-16T00:00:00Z
                }  

    }

foreach ($invoice as $key => $value) 
{
        $Id=$value->Id;
        $Amount=$value->Amount;
        $Currency=$value->Currency;
        $ExchangeRate=$value->ExchangeRate;
        $invoiceDate = str_replace('Z', '', str_replace('T', ' ',$value->InvoiceDate)); 



 }            


  $jsonData ='[{"Id": "'.$Id.'",
                "Amount": "'.$Amount.'",
                "Currency": "'.$Currency.'",
                "ExchangeRate": "'.$ExchangeRate.'",
                "invoiceDate": "'.$invoiceDate.'"}];
我尝试了这段代码最后数组值只打印数组[2]值,我需要像这样的输出

[{"Id": "116249",
                    "Amount": "51.62",
                    "Currency": "INR",
                    "ExchangeRate": "1",
                    "invoiceDate": "2015-12-16T00:00:00Z"},

                    {"Id": "116250",
                    "Amount": "55.20",
                    "Currency": "KWD",
                    "ExchangeRate": "1",
                    "invoiceDate": "2015-12-16T00:00:00Z"},

                    {"Id": "116251",
                    "Amount": "59.42",
                    "Currency": "USD",
                    "ExchangeRate": "1",
                    "invoiceDate": "2015-12-16T00:00:00Z"}]

您希望从数组创建json字符串。您所需要做的就是运行以下命令

jsonData = json_encode($invoice);
如果您希望使用循环创建数组以仅生成特定值,则可以执行以下操作:

$tmp = array();
foreach ($invoice as $key => $value) 
{
   $tmp["id"] = $value->Id;
   $tmp["amount"] = $value->Amount;
   $tmp["Currency"] = $value->Currency;
   $tmp["ExchangeRate"] = $value->ExchangeRate;
   $tmp["invoiceDate"] = str_replace('Z', '', str_replace('T','',$value->InvoiceDate));
 }  

jsonData = json_encode($tmp);
*编辑*


如果您使用mysql日期作为invoiceData变量。然后最好使用PHP函数。

您希望从数组创建json字符串。您所需要做的就是运行以下命令

jsonData = json_encode($invoice);
如果您希望使用循环创建数组以仅生成特定值,则可以执行以下操作:

$tmp = array();
foreach ($invoice as $key => $value) 
{
   $tmp["id"] = $value->Id;
   $tmp["amount"] = $value->Amount;
   $tmp["Currency"] = $value->Currency;
   $tmp["ExchangeRate"] = $value->ExchangeRate;
   $tmp["invoiceDate"] = str_replace('Z', '', str_replace('T','',$value->InvoiceDate));
 }  

jsonData = json_encode($tmp);
*编辑*


如果您使用mysql日期作为invoiceData变量。那么您最好使用PHP函数。

我同意利亚姆的观点,即
json\u encode()
可能是解决您的问题的最佳解决方案。但是,如果您正在寻找DIY解决方案,它非常简单:

$jsonData = '[';
foreach ($invoice as $key => $value) 
{
        $Id=$value->Id;
        $Amount=$value->Amount;
        $Currency=$value->Currency;
        $ExchangeRate=$value->ExchangeRate;
        $invoiceDate = str_replace('Z', '', str_replace('T', ' ',$value->InvoiceDate)); 

        // Append the next invoice's JSON data to all of the JSON data
        $jsonData .='{"Id": "'.$Id.'",
                "Amount": "'.$Amount.'",
                "Currency": "'.$Currency.'",
                "ExchangeRate": "'.$ExchangeRate.'",
                "invoiceDate": "'.$invoiceDate.'"},';

 }

 // Clean up and close off the JSON data:
 $jsonData = rtrim($jsonData, ','); // remove the trailing comma
 $jsonData .= ']'; // Add the closing bracket.
代码中存在的问题是,在foreach循环运行之后,只分配了一次JSON数据。相反,您需要将每个发票的JSON数据附加到其他发票的JSON数据中


尽管如此,
json\u encode()
可能是更好的解决方案,因为它只有一行,更容易阅读,也更容易理解。

我同意利亚姆的观点,
json\u encode()
可能是解决您的问题的最佳方案。但是,如果您正在寻找DIY解决方案,它非常简单:

$jsonData = '[';
foreach ($invoice as $key => $value) 
{
        $Id=$value->Id;
        $Amount=$value->Amount;
        $Currency=$value->Currency;
        $ExchangeRate=$value->ExchangeRate;
        $invoiceDate = str_replace('Z', '', str_replace('T', ' ',$value->InvoiceDate)); 

        // Append the next invoice's JSON data to all of the JSON data
        $jsonData .='{"Id": "'.$Id.'",
                "Amount": "'.$Amount.'",
                "Currency": "'.$Currency.'",
                "ExchangeRate": "'.$ExchangeRate.'",
                "invoiceDate": "'.$invoiceDate.'"},';

 }

 // Clean up and close off the JSON data:
 $jsonData = rtrim($jsonData, ','); // remove the trailing comma
 $jsonData .= ']'; // Add the closing bracket.
代码中存在的问题是,在foreach循环运行之后,只分配了一次JSON数据。相反,您需要将每个发票的JSON数据附加到其他发票的JSON数据中


尽管如此,
json\u encode()
可能是更好的解决方案,因为它只有一行,更容易阅读,也更容易理解。

你的问题是什么?我需要这样的输出,具体是什么?你能编辑你的问题告诉我们你有什么,你在做什么和你的问题吗?对不起,不要让我们把你的一切都拖出来。在你的问题上要精确:你的输入是什么,期望的输出是什么。你的问题真的只是“如何从数组中创建json字符串”?我试过只打印最后一个数组值的代码你的问题是什么?我需要这样的输出,具体是什么?你能编辑你的问题告诉我们你有什么,你在做什么和你的问题吗?对不起,不要让我们把你的一切都拖出来。在你的问题上要精确:你的输入是什么,期望的输出是什么。你的问题真的只是“如何从数组中创建json字符串”吗?我试过代码最后一个数组值只打印brother,我想是它的json_encode()。不是jsone_encode():)brother,我想是它的json_encode()。不是jsone_encode():)