【问题标题】:Issue with getting php objects from JSON array从 JSON 数组获取 php 对象的问题
【发布时间】:2017-04-28 05:51:38
【问题描述】:

这是我使用 php curl 方法从 url 获取的解码数组,

Array ( [result] => Array ( [0] => Array ( [id] => 1 [name] => FIRDOUS FAROOQ BHAT [office] => MG Road [age] => 25 [start_date] => 2017-04-27 22:08:11 [salary] => $20000 ) ) )

现在的问题是我无法从中获取特定值。我使用了echo $result->name;var_dump['name'];,我得到的是空值。谁能解决?

【问题讨论】:

    标签: php arrays json curl


    【解决方案1】:

    如果你的变量名是 $data 你存储这个数组的地方,

    echo $data['result'][0]['name'];
    echo $data['result'][0]['office'];
    

    或(如果有多个数据)

    foreach($data['result'] as $res){
       echo $res['name'];
       echo $res['office']; //if office there
       echo $res['age'];
    }
    

    【讨论】:

    • 以及如何使用循环显示数组的其他属性,如办公室、年龄等?
    【解决方案2】:

    您将 json 字符串解码为数组,您需要使用索引来访问数组元素,例如$result['result'][0]['name'];。不能使用-> 访问数组元素,该运算符用于访问对象的元素。

    【讨论】:

    • 是的,谢谢:)
    【解决方案3】:

    如果您在此处发布的输出存储在 $result 中,您可能希望这样访问它:

    //Get the first result, and the name from that first result
    $result['result'][0]['name'];
    

    【讨论】:

    • 你在说什么?
    • 我已将您的帖子从 $result[0]['name'] 更新为 $result['result'][0]['name']
    • 我已经在编辑帖子了。由于我进行了后续修改,社区拒绝了您的修改
    • 哦,我知道你 +1
    • 谢谢@webDev
    【解决方案4】:

    你好,如果结果在数组中包含多个元素。在这种情况下,访问您的结果的安全方法是。在这里,我正在考虑您来自 CURL 的响应,如果您这样做,您将存储在 $result 变量中,那么下面的代码将对您有所帮助。

    foreach($result['result'] as $singleArray)
    {
      echo $singleArray['name'];
    }
    

    这样你可以访问结果数组的所有元素。

    【讨论】:

      【解决方案5】:

      这里你得到一个数组,但你试图访问该对象, echo $result->name;

      你不应该用这个而是用这个

      echo $data['result'][0]['name'];
      

      【讨论】:

      • 谢谢 :) 现在我怎样才能以优雅的方式显示数组的所有元素?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 2019-06-05
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多