在echo之前删除部分PHP字符串

时间:2016-05-20 08:00:37

标签: php

我从数据库获取内容但是这些内容格式不正确,无法实现我想要实现的目标。

数据如何来自数据库:

{"5":"The content"}

第一组""中的数字在每个条目上是不同的,而不是顺序的。

我只需要这个内容。使用PHP删除字符串中不需要的部分的最佳方法是什么?

这就是我目前显示内容的方式:

if ($result->num_rows > 0) {
     // output data of each row
     while($row = $result->fetch_assoc()) {
         echo $row["form_data"]. "<br>";
     }
} else {
     //empty message will be here
}

3 个答案:

答案 0 :(得分:1)

  

在echo

之前删除部分PHP字符串

不,实际上没有。

{"5":"The content"}

JSON ,将decode发送到您的喜欢并获取该号码。没有必要尝试通过一些字符串操作来解析字符串。

运行此功能,您将看到

print_r(json_decode('{"5":"The content"}',true));

您可以自己编写的其他代码,不需要复制粘贴答案吗? :)

答案 1 :(得分:1)

这是一个JSON字符串,您需要做的就是json_decode()字符串

使用将JSON转换为数组的json_decode()的第二个参数,无论它在JSON中定义的是什么,即你的是一个对象,那么你可以简单地使用current数组语法来获取内容部分,无论这些数据中的数字(5)是多少。

$data = json_decode($row["form_data"], true);
echo current($data);

答案 2 :(得分:0)

您可以使用json_decode来做到这一点,这是一个例子:

    $string = '{"5":"The content"}';
    $json = json_decode($string);
    var_dump($json->{'5'});

结果是:

    string 'The content' (length=11)

如果它不是5但你想要第一条记录,你可以做出类似的东西:

    $string = '{"5":"The content", "6":"The"}';
    $json = json_decode($string);
    foreach ($json as $key => $value) {
        var_dump($value);
        exit;
    }

它只会打印第一个值

或者更好,您可以使用current()

    var_dump(current($json));