首页 > 解决方案 > 如何使用 PHP 将字符串更改为 JSON 格式结构?

问题描述

我有这些代码可以从两个不同的数据库中提取数据。

我需要通过'staffid'消除同一行。

到目前为止,我可以消除重复。但输出不是我想要的。

索引.php

<?php

    // PART A
    require 'conn.php';
    $query = "SELECT STAFFID FROM TABLE";
    $result = oci_parse($conn, $query);
    oci_execute($result);
    while ($row = oci_fetch_array($result,OCI_NUM)){
        $arr[] = $row[0]; 
    } 


    // PART B
    $url="http://localhost/fetch_data.php";  
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    $result=curl_exec($ch); 
    curl_close($ch); 


    foreach(json_decode($result) as $result2)
    {
        if(!in_array($result2[0],$arr))
        {
            $total = "".$result2[0].",".$result2[1].",".$result2[2]."<br/>"; 
            echo json_encode($total);
        }       
    }
?>

上述代码的远输出如下

"A001","BILLY","email1@mail.com"
"A002","JOHN","email2@mail.com"
"A003","SALLY","email3@mail.com"

获取.php

<?php
    include_once('conn.php');

    $arr        = array();
    $query      = "SELECT * FROM TABLE "; 
    $stmt       = sqlsrv_prepare($conn, $query);
    $result     = sqlsrv_execute($stmt);
    $row        = sqlsrv_fetch_array($stmt);

    $array  = array();
    while( $self = sqlsrv_fetch_array( $stmt)) { 

        $array2 = array();
        $array2[]= $self['ID'];  
        $array2[]= $self['NAME'];  
        $array2[]= $self['EMAIL'];  

        $array[] =  $array2;
    }
    echo json_encode($array);
?>

我的目标是将其更改为 JSON,如下所示。我错过了括号和昏迷。

[
    ["A001","BILLY","email1@mail.com"],
    ["A002","JOHN","email2@mail.com"],
    ["A003","SALLY","email3@mail.com"]
]

感谢有人可以帮助我解决这个问题。谢谢。

标签: php

解决方案


尝试改变

foreach(json_decode($result) as $result2)
{
    if(!in_array($result2[0],$arr))
    {
        $total = "".$result2[0].",".$result2[1].",".$result2[2]."<br/>"; 
        echo json_encode($total);
    }       
}

进入

foreach(json_decode($result) as $result2)
{
    if(!in_array($result2[0],$arr))
    {
        $total[] = $result2; 
    }       
}
echo json_encode($total);

推荐阅读