【问题标题】:Show database entries without parentheses显示不带括号的数据库条目
【发布时间】:2016-06-11 11:04:32
【问题描述】:

我试图在我的网站上显示数据库条目,但问题是这些条目是这样写的 {"7":"9.90"}。

我只需要这部分:9.90。

有没有办法像这样“过滤”条目?

【问题讨论】:

  • 让我们逻辑思考。 {"7":"9.90"} 长什么样子?

标签: php mysql arrays filtering


【解决方案1】:

字符串{"7":"9.90"}是JSON字符串,可以用json_decode解码:

$data = '{"7":"9.90"}';
$arr = json_decode($data, true);
// $arr is now a PHP array: array("7" => "9.90")
$value = $arr["7"];
echo $value; // outputs 9.90

如果您不知道密钥(本例中为“7”),但无论如何只想获取值,则可以使用current 函数:

$value = current($arr);

【讨论】:

  • 到目前为止我理解它,但 {"7"} 并不总是 7。此数字声明了产品的数量,因此在另一个条目中可能会有所不同。有没有办法检测价格前面是否有数字(在我的例子中:9.90),如果有就删除它?
  • 请注意这是 JSON。 价格前的数字不适合 JSON。正确的说法是:给出价格的键。无论如何,我添加了一段关于如何执行此操作的段落。
  • 只是好奇:我对 PHP 并不熟悉,作为一个 perl 人,我会称 '{"7":"9.90"}' 为 hash。 perl 中的数组将转换为 JSON [7,9.9]。在 PHP 中会叫什么?
  • 在 PHP 世界中,JSON {"7":"9.90"} 的等价物被称为 关联数组,写成 array("7" => "9.90"),(或者,从 PHP 5.4 开始:["7" => "9.90"] )。 JSON [7, 9.9] 的等价物称为 [indexed] 数组,写为 array(7, 9.9) 或 [7, 9.9] (PHP 5.4)。 PHP 的差异很小,两种结构都在内部存储为映射(或哈希)。 Read more.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 2021-03-16
  • 1970-01-01
  • 2020-06-23
相关资源
最近更新 更多