我从数据库获取内容但是这些内容格式不正确,无法实现我想要实现的目标。
数据如何来自数据库:
{"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
}
答案 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));