【问题标题】:PHP 5.2 array_push inserts a null valuePHP 5.2 array_push 插入一个空值
【发布时间】:2017-10-04 02:19:11
【问题描述】:

您好,我遇到了一个奇怪的问题,即在数组中迭代和推送一个值(为了更好地查看我使用 json 数据)。以下是我在 foreach 中用于以下数据的数据。我实际上不知道问题是什么,但我使用的是 php 5.2

[
{
account_grp: "SOLD",
sold_to: "1000005071",
sold_to_name: "MARIA LUZ MANALILI",
ship_to: "1000005071",
ship_to_name: "MARIA LUZ MANALILI",
division: "20",
division_desc: "Pharma Sales",
salesman: "E000112086",
salesman_name: null,
doc_type: "DA",
posting_date: "20170707",
clearing: "2100030778",
doc_no: "1400009660",
assignment: "5110074314",
ref_no: "RC - RECLASS",
amt_w_vat: "6496.62",
vat: "779.5944",
amt_net_vat: "5717.0256",
cust_group2_desc: "MEAD JOHNSON",
cust_group_desc: "Reg Accnt-Non-Chain",
gl_account: "0000123001",
gl_account_desc: "TRADE RECEIVABLE",
check_date: null,
check_details: "RC - DAIF",
remarks: "RC - DAIF",
posting_key: "09",
line_item: "001",
fiscal_year: "2017",
tax_class: "1",
doc_no2: "1400009660"
},
{
account_grp: "SOLD",
sold_to: "1000004711",
sold_to_name: "PAZ PHARMACY",
ship_to: "1000004711",
ship_to_name: "PAZ PHARMACY",
division: "20",
division_desc: "Pharma Sales",
salesman: "E000071970",
salesman_name: "IGLORIA, JOAN DELICANO",
doc_type: "DA",
posting_date: "20170707",
clearing: "1700004713",
doc_no: "1400009658",
assignment: "5120008912",
ref_no: "RC - RECLASS",
amt_w_vat: "72783.62",
vat: "8734.0344",
amt_net_vat: "64049.5856",
cust_group2_desc: "INDEPENDENT",
cust_group_desc: "Reg Accnt-Non-Chain",
gl_account: "0000123001",
gl_account_desc: "TRADE RECEIVABLE",
check_date: null,
check_details: "RC - Tech Reason",
remarks: "RC - Tech Reason",
posting_key: "09",
line_item: "001",
fiscal_year: "2017",
tax_class: "1",
doc_no2: "1400009658"
},
{
account_grp: "SOLD",
sold_to: "1000003609",
sold_to_name: "DR. ANDEYLEF JOY S. CABUTIHAN",
ship_to: "2000003312",
ship_to_name: "DR. ANDELEYLEF JOY S. CABUTIHAN",
division: "20",
division_desc: "Pharma Sales",
salesman: "E000112086",
salesman_name: null,
doc_type: "DA",
posting_date: "20170714",
clearing: "2100031395",
doc_no: "1400009796",
assignment: "5110077391",
ref_no: "RC - RECLASS",
amt_w_vat: "11577.10",
vat: "1389.2520",
amt_net_vat: "10187.8480",
cust_group2_desc: "MEAD JOHNSON",
cust_group_desc: "Reg Accnt-Non-Chain",
gl_account: "0000123001",
gl_account_desc: "TRADE RECEIVABLE",
check_date: null,
check_details: "RC - DAIF",
remarks: "RC - DAIF",
posting_key: "09",
line_item: "001",
fiscal_year: "2017",
tax_class: "1",
doc_no2: "1400009796"
},
{
account_grp: "SOLD",
sold_to: "1000005447",
sold_to_name: null,
ship_to: "2000004135",
ship_to_name: null,
division: "20",
division_desc: "Pharma Sales",
salesman: "E000112086",
salesman_name: null,
doc_type: "DA",
posting_date: "20170720",
clearing: "2100031892",
doc_no: "1400010004",
assignment: "5130007369",
ref_no: "RC - RECLASS",
amt_w_vat: "11581.83",
vat: "1389.8196",
amt_net_vat: "10192.0104",
cust_group2_desc: "MEAD JOHNSON",
cust_group_desc: "Reg Accnt-Non-Chain",
gl_account: "0000123001",
gl_account_desc: "TRADE RECEIVABLE",
check_date: null,
check_details: "RC - DAIF",
remarks: "RC - DAIF",
posting_key: "09",
line_item: "001",
fiscal_year: "2017",
tax_class: "1",
doc_no2: "1400010004"
}
] 

这是我的代码

public function create($aData)
{

    $aValues = array();


    foreach ($aData as $key => $aReport) 
    {


        $sData = implode(',', $aReport);


        array_push($aValues, "(". $sData. ")");

    }
    echo json_encode($aValues);die();


}

当我回显 $aValues 时,这是输出

[
null,
"(SOLD,1000004711,PAZ PHARMACY,1000004711,PAZ PHARMACY,20,Pharma Sales,E000071970,IGLORIA, JOAN DELICANO,DA,20170707,1700004713,1400009658,5120008912,RC - RECLASS,72783.62,8734.0344,64049.5856,INDEPENDENT,Reg Accnt-Non-Chain,0000123001,TRADE RECEIVABLE,,RC - Tech Reason,RC - Tech Reason,09,001,2017,1,1400009658)",
null,
null
]

【问题讨论】:

    标签: php foreach array-push php-5.2


    【解决方案1】:

    它们显示 null 是因为 json_encode 在数据上失败(格式不正确?)。确保您传递的要编码的数据格式正确。

    http://php.net/manual/en/function.json-encode.php

    【讨论】:

    • 您好实际上我使用 json 数据来更好地查看,但数据格式是数组
    • json_encode 不喜欢它,发布您的实际 php 数组,也许有人可以查明问题。
    • 您好,顺便说一句,我尝试了 var_dump 并且该值不再为空,我将进一步检查数据失败的原因非常感谢您
    • 如果您希望以最佳方式格式化 php 输出,请使用 echo '<pre>'; var_export( $var );。我更喜欢 var_export,因为它以 php 格式输出有效的“Stuff”。本质上,您可以将数组的输出从 var_export 复制到 php 代码中。 <pre> 标记保留空白,无需将其关闭以进行测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 2018-11-18
    • 2011-05-14
    相关资源
    最近更新 更多