【问题标题】:Extracting data from Json in Php在 PHP 中从 Json 中提取数据
【发布时间】:2016-04-19 20:38:14
【问题描述】:

我下面有这个Json对象,我想把这个数据提取出来用PHP输出

{"seat_booked":"A5","0":"A5","1":"A3"}

然后把它们变成这种格式

$seat_booked = "'A5', 'A5', 'A3'";

我该怎么做?

【问题讨论】:

  • 现在更新了这么多答案,现在接受最好的答案以备不时之需..

标签: php json


【解决方案1】:

要从 php 中的 json 获取对象,您可以使用 json_decode 已解释 here

但是你还有一个问题,你的json错了! 如果你想表示一个单维数组,你至少应该这样做

["A5","A5","A3"]

最后,使用 json_decode:

$obj = json_decode('["A5","A5","A3"]');
var_dump($obj);

另外,你可以这样做:

{"0":"A5","1":"A5","2":"A3"}
$obj = json_decode('{"0":"A5","1":"A3", "2": "A5"}', true);
var_dump($obj);

编辑:

您的问题不是很清楚,您是想从 json 中取回一个对象,还是只想从中获取一个字符串。

如果你需要的是一个字符串,那么你甚至不需要 json,你可以通过字符串操作和/或使用正则表达式来做到这一点。

但为了完整起见,如果您需要带引号的逗号分隔字符串,您可以这样做:

$array = json_decode('["A5","A5","A3"]');
$str = implode("','",$array);
$str = "'" . $str . "'";
var_dump($str);

【讨论】:

    【解决方案2】:

    另一种解决方案:

    $json = '{"seat_booked":"A5","0":"A5","1":"A3"}';
    
    $decoded = array_map(
        function($val) { 
            return "'". $val."'";
        }, 
        array_values(json_decode($json, true))
    );
    

    【讨论】:

      【解决方案3】:

      我希望你正在寻找这个,它是使用json_decode() 的非常简单的示例:

      $string = '{"seat_booked":"A5","0":"A5","1":"A3"}';
      $decoded = json_decode($string,true);
      $resuiredString = '"'."'".implode("','", $decoded)."'".'"';
      
      echo $resuiredString;
      

      结果:

      "'A5','A5','A3'"
      

      旁注:

      我建议你学习变量连接。

      PHP Concatenation

      【讨论】:

      • 谢谢 Devpro,这对我很有帮助
      • @kikuyu1:别提了,如果它对你有用,别忘了点击左边的绿色勾号将其标记为已接受,它将对其他人有所帮助..
      猜你喜欢
      • 1970-01-01
      • 2021-10-21
      • 2014-07-08
      • 1970-01-01
      • 2018-10-31
      • 2016-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多