【问题标题】:how to print a specific json key in php?如何在php中打印特定的json键?
【发布时间】:2021-09-25 13:10:30
【问题描述】:

这是我的 PHP 代码:

<?php
    session_start();
    include"smsciniz/vendor/autoload.php";
    include"smsciniz/baglan.php";
    
    //$insert =  $DB->query("INSERT INTO sc_ulke(ulke_isim) VALUES(?)", array($_POST["ulke_isim"]));
     
    $ulke =  $DB->query("SELECT * FROM sc_ulke");
    
    foreach ($ulke as $value) {
       $url = file_get_contents("https://5sim.net/v1/guest/products/".trim($value["ulke_isim"])."/any");
       $json = json_decode($url,true);
     
       echo $json;
    }
?>

这是我的 JSON 数据:

"1688": {
"Category": "activation",
"Qty": 2000,
"Price": 14.83
},
"1xbet": {
"Category": "activation",
"Qty": 11413,
"Price": 19
},
"32red": {
"Category": "activation",
"Qty": 4113,
"Price": 7
},
"888casino": {
"Category": "activation",
"Qty": 4109,
"Price": 5
},
"99app": {
"Category": "activation",
"Qty": 5437,
"Price": 5
},

我想打印我标记的区域,但我不知道该怎么做。
如果你能帮我举个例子,我会很高兴,提前谢谢你

"32red": {
    "Category": "activation",
    "Qty": 4113,
    "Price": 7
    },

【问题讨论】:

  • print_r() ?
  • json_decode($url, true) 将返回 json 数据的 array 表示。你不能echo 数组。当您发布代码时,您还应该包括实际发生的事情。在这种情况下,您应该收到“数组到字符串的转换”警告/通知(除非由于某种原因解码失败)。发布的 json 数据虽然无效(不完整)
  • 我要打印 32red
  • 到目前为止你尝试过什么?你被困在哪里了?您要究竟打印什么?

标签: php arrays json


【解决方案1】:

我们可以使用json_encodeJSON_PRETTY_PRINT通过特定键迭代和查找并打印结果

function findObjByKey($res, $keyToFind){
    foreach ($res as $key => $value) {
     if($key == $keyToFind) {
         return $value;
      }
    }
    return NULL;
}

$json = json_decode('
  {"1688": {
  "Category": "activation",
  "Qty": 2000,
  "Price": 14.83
  },
  "1xbet": {
  "Category": "activation",
  "Qty": 11413,
  "Price": 19
  },
  "32red": {
  "Category": "activation",
  "Qty": 4113,
  "Price": 7
  },
  "888casino": {
  "Category": "activation",
  "Qty": 4109,
  "Price": 5
  },
  "99app": {
  "Category": "activation",
  "Qty": 5437,
  "Price": 5
  }}'
);

$res = findObjByKey($json, '32red');
$prittyPrint= json_encode($res, JSON_PRETTY_PRINT);
echo "<pre>".$prittyPrint."<pre>";

【讨论】:

    【解决方案2】:

    像这样使用json_encode($json['32red'])你可以访问json中的任何键

    【讨论】:

    • 请分享更多细节。按照 cmets 的要求,这应该如何打印32red
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    相关资源
    最近更新 更多