【问题标题】:Obtain a list of elements from a JSON array in php从 php 中的 JSON 数组中获取元素列表
【发布时间】:2021-11-01 19:12:29
【问题描述】:

这就是我处理来自服务器的请求以及我得到的数组的方式:

       $result = json_decode($request->response)->result;
       $response = array('status' => 0, 'rpcresult' => $result);
       echo json_encode($response);

{"status":0,"rpcresult":[
{"key":"10","pcode":"30001"},
{"key":"11","pcode":"30002"},
{"key":"12","pcode":"30003"},
{"key":"13","pcode":"30004"},
{"key":"14","pcode":"30005"}]}

这是我第一次尝试获取所有 pcode 元素的列表:

 success: function(response) {
 for (i= 0;i < response.rpcresult.length;i++){
 if (response.status == 0) {
 msg = '<h2>'+response.rpcresult[i].pcode+'</h2>';
 }
 else
 msg = 'ERROR (' + response.error + ')';
 $("#PopupBody").html(msg);
 $("#ModalPopup").modal('show');  
 }
 }

问题在于它只返回最后一个 pcode 元素 (30005),我不确定为什么。

【问题讨论】:

  • 我认为这可能有效:msg = msg + '&lt;h2&gt;'+response.rpcresult[i].pcode+'&lt;/h2&gt;';。如果之前没有创建 msg,请在 api 调用之前创建它。它会将已经制作的消息粘贴到新消息的前面。制作某种清单。目前,您只是在每次 for 循环触发时替换 msg 变量
  • 为什么?因为您每次都用一个新值覆盖msg 的值,而不是附加到已经存在的值。
  • 大概就是这样,我如何在php中做到这一点?有什么功能吗?

标签: php arrays json loops for-loop


【解决方案1】:
   $stringajson="{"status":0,"rpcresult":[
                    {"key":"10","pcode":"30001"},{"key":"11","pcode":"30002"}, 
                    {"key":"12","pcode":"30003"},{"key":"13","pcode":"30004"},
                    {"key":"14","pcode":"30005"}]}";

  $myapplication = array();
  $myapplication = json_decode($resp, true);
  $orders=array();
  $orders=$myapplication["rpcresult"];
  for($q=0; $q<count($orders);$q++)
  {
    echo "<h2>".$orders[$q]["pcode"]."</h2>";
  }                             

【讨论】:

  • 这可以工作,但数组的内容可能会有所不同,我需要更灵活的东西。无论如何感谢您的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-04
  • 1970-01-01
  • 2021-03-09
  • 1970-01-01
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
相关资源
最近更新 更多