Php 格式解析json数组

Php 格式解析json数组,php,arrays,ajax,format,Php,Arrays,Ajax,Format,我有一个项目,其中我有一个编码的json数组,需要对其进行格式化,以便数组中的元素像index.php文件中那样在彼此下面打印 这是我对数组中的元素所期望的输出,将在每个元素下面打印出来,每个新索引都有一个空格 以下是我目前的代码: allNames.php <?php // Get the string from the URL $json = file_get_contents('http://5dd559d3ce4c300014402cb8.mockapi.io/onboard/p

我有一个项目,其中我有一个编码的json数组,需要对其进行格式化,以便数组中的元素像index.php文件中那样在彼此下面打印

这是我对数组中的元素所期望的输出,将在每个元素下面打印出来,每个新索引都有一个空格

以下是我目前的代码:

allNames.php

<?php
// Get the string from the URL
$json = file_get_contents('http://5dd559d3ce4c300014402cb8.mockapi.io/onboard/posts');
printAll($json);
$array= array();
function printAll($json){
// Decode the JSON string into an object
$obj = json_decode($json,true);
$elementCount  = count($obj);
// In the case of this input, do key and array lookups to get the values
for($i=0; $i<$elementCount; $i++){

    #delimit based on added * after each attribute to ensure all elemets are added and not cut short
    $array[]=explode("*",$obj[$i]["id"]."*".$obj[$i]["createdAt"]."*".$obj[$i]["name"]
            ."*".$obj[$i]["avatar"]."*".$obj[$i]["jobDescription"]."*".$obj[$i]["userEmail"]."*"
            .$obj[$i]["userIpAddress"]."*".$obj[$i]["userAgent"]);
}

 echo json_encode($array);
}
?>

index.php

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script type="text/javascript">

function ajax_post(){
     $.post("allNames.php", {
    }, function(data) {
      var returnedData = JSON.parse(data);
      $("#data").html(returnedData + "<br>");
    });
    };
</script>
</head>
<body>
<h2>Ajax Post to PHP and Get Return Data</h2>
<input name="myBtn" type="submit" value="Check" onclick="ajax_post()"> <br><br>
<center> <p id="data" style="color:black"></p><br><br> </center>
</body>
</html>

函数ajax_post(){
$.post(“allNames.php”{
},函数(数据){
var returnedData=JSON.parse(数据);
$(“#数据”).html(返回数据+”
”; }); }; Ajax发布到PHP并获取返回数据




这将格式化JSON以进行打印。这是一个有效的例子

$dataToPrint
变量保存从数据中打印的所有内容。它检查空数据,如果没有输出数据,也不打印分隔符。它非常直截了当,它在所有东西中循环

如果不想限制打印内容,只需删除
$dataToPrint
变量和
array\u search(…
条件)并将其打印即可

索引:

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script type="text/javascript">

        function ajax_post(){
            $.post("allNames.php", {
            }, function(data) {
                // var returnedData = JSON.parse(data);
                $("#data").html(data);
            });
        };
    </script>
</head>
<body>
<h2>Ajax Post to PHP and Get Return Data</h2>
<input name="myBtn" type="submit" value="Check" onclick="ajax_post()"> <br><br>
<center> <p id="data" style="color:black"></p><br><br> </center>
</body>
</html>

函数ajax_post(){
$.post(“allNames.php”{
},函数(数据){
//var returnedData=JSON.parse(数据);
$(“#数据”).html(数据);
});
};
Ajax发布到PHP并获取返回数据




全名:

<?php
// Get the string from the URL
$json = file_get_contents('http://5dd559d3ce4c300014402cb8.mockapi.io/onboard/posts');
$decodedJson = json_decode( $json, TRUE );
$dataToPrint = array(
    'id',
    'createdAt',
    'name',
    'avatar',
    'jobDescription'
);
$returningString = "";
foreach ( $decodedJson as $dataToDisplay ) {
    if ( is_array( $dataToDisplay ) && ! empty( $dataToDisplay ) ) {
        $printSeparator = FALSE;
        foreach ( $dataToDisplay as $key => $value ) {
            if ( array_search( $key, $dataToPrint ) !== FALSE ) {
                $printSeparator = $printSeparator || TRUE;
                $returningString .= "{$key}: {$value} <br/>";
            }
        }
        // Printed all from current, adding a HR or extra line break. Change as desired
        if ( $printSeparator ) {
            $returningString .= "<hr>";
        }
    }
}

echo $returningString;

这将格式化JSON以进行打印。这是一个工作示例

$dataToPrint
变量保存您想要从数据中打印的所有内容。它检查空数据,如果没有输出数据,也不会打印分隔符。它非常简单,它遍历所有内容

如果不想限制打印内容,只需删除
$dataToPrint
变量和
array\u search(…
条件)并将其打印即可

索引:

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script type="text/javascript">

        function ajax_post(){
            $.post("allNames.php", {
            }, function(data) {
                // var returnedData = JSON.parse(data);
                $("#data").html(data);
            });
        };
    </script>
</head>
<body>
<h2>Ajax Post to PHP and Get Return Data</h2>
<input name="myBtn" type="submit" value="Check" onclick="ajax_post()"> <br><br>
<center> <p id="data" style="color:black"></p><br><br> </center>
</body>
</html>

函数ajax_post(){
$.post(“allNames.php”{
},函数(数据){
//var returnedData=JSON.parse(数据);
$(“#数据”).html(数据);
});
};
Ajax发布到PHP并获取返回数据




全名:

<?php
// Get the string from the URL
$json = file_get_contents('http://5dd559d3ce4c300014402cb8.mockapi.io/onboard/posts');
$decodedJson = json_decode( $json, TRUE );
$dataToPrint = array(
    'id',
    'createdAt',
    'name',
    'avatar',
    'jobDescription'
);
$returningString = "";
foreach ( $decodedJson as $dataToDisplay ) {
    if ( is_array( $dataToDisplay ) && ! empty( $dataToDisplay ) ) {
        $printSeparator = FALSE;
        foreach ( $dataToDisplay as $key => $value ) {
            if ( array_search( $key, $dataToPrint ) !== FALSE ) {
                $printSeparator = $printSeparator || TRUE;
                $returningString .= "{$key}: {$value} <br/>";
            }
        }
        // Printed all from current, adding a HR or extra line break. Change as desired
        if ( $printSeparator ) {
            $returningString .= "<hr>";
        }
    }
}

echo $returningString;


您的意思是要打印每个数组并在它们之间添加几行空行吗?几乎是的,因此每个索引中的7个元素都在彼此下方打印,最好带有标记,以便您知道它们是什么,每个索引之间有一些空格您可以在
循环的
末尾添加
echo'
这将在浏览器中添加一个空行,您可以在其中回显结果。如果您想以任何方式格式化,您可以在实际HTML页面中回显变量。您的问题能否更具体一些?啊,我明白了,您希望单独打印每个元素。您不能简单地执行类似于
echo$obj[$I]的操作吗[“用户IP地址”]例如:“
?对数组中的每个元素重复这个过程?我本可以在PHP文件中完成,但我发现我需要在一个数组中发送所有信息,并让它像index.PHP文件中那样打印。您的意思是要打印每个数组并添加几行空行吗在它们之间?几乎是的,所以每个索引中的7个元素都打印在彼此的下方,最好是带有一个标记,这样你就知道它们是什么,每个索引之间有一些空格。你可以在
for
循环的末尾添加
echo'
,这将在浏览器中添加一个空行,在那里你可以回显结果。你可以如果您想以任何方式格式化,请在实际HTML页面中回显变量。您能在问题中更具体一些吗?啊,我明白了,您想单独打印每个元素。您不能简单地执行类似于
echo$obj[$I][“userIpAddress”]例如:“
?对数组中的每个元素重复此操作?我本可以在PHP文件中完成此操作,但我发现我需要在一个数组中发送所有信息,并将其打印到index.PHP文件中。嗨,感谢您的评论。我目前正在尝试此操作,但没有得到支持说到这里,你知道我在试图做什么吗?你的问题似乎有点让人困惑,你可以发布一个示例输出,然后我可以用你的示例中使用的模拟json数据来帮助你显示它吗?@Papb1NG0是的,当然,很抱歉让人困惑。我因为尝试这样做而头脑发热。我现在就发布一个示例好了,没问题@PaPaB1nG0。我可以调整它,我会把它整理干净,并编辑我的示例来解释更多。非常感谢你的帮助,它最终看起来像是我在过去的几个小时里试图得到它。嗨,谢谢你的评论。我现在正在尝试这一点,并没有走多远,你看到我正在尝试做什么了吗?你的问题stion看起来有点困惑,你能发布一个示例输出,然后我可以用你示例中使用的模拟json数据来帮助你显示它吗?@PaPaB1nG0当然,很抱歉造成混乱。我现在就发布一个示例好了,没问题@PaPaB1nG0。我可以调整它,我会把它清理干净,然后编辑我的示例,使之成为ex再简单一点。非常感谢你的帮助,看起来我在过去的几个小时里终于想要得到它了