【问题标题】:How to remove $ from associative array using Json_decode in php?如何在 php 中使用 Json_decode 从关联数组中删除 $?
【发布时间】:2011-02-23 20:52:11
【问题描述】:

我正在尝试使用 youtube API 为我的网站下拉一些视频。目前正在这里运行此代码:

//Youtube Videos Pull Down
$youtubeURL = "http://gdata.youtube.com/feeds/api/videos?alt=json&q=cats+cradle+chapel+hill&orderby=published&max-results=10&v=2";
$youtubeSearch = file_get_contents($youtubeURL, true);
$youtubeArray = json_decode($youtubeSearch, true);

访问关联数组的某些元素没有任何问题,但是 youtube 的 api 将 $ 放入其许多数组元素中......例如 [media$group]

每当我尝试访问其中包含 $ 元素之一的数组时,它都不起作用。建议?

我尝试了 preg_replace,但似乎无法正确表达。

【问题讨论】:

  • 你能告诉我们一些你试图访问它的代码吗?
  • 你在引用密钥吗? $array['media$group']

标签: php youtube-api json


【解决方案1】:

您应该可以正常访问它,您只需要确保使用单引号,否则 php 会尝试将 $group 插入为变量,因此:
$youtubeArray['media$group']

如果你想在preg_replace 中使用它,你必须用反斜杠转义它:\$$ 是一个有效的正则表达式标识符,所以正则表达式被它绊倒了。

如果你确实替换它,你应该使用str_replace。无需将(较慢的)正则表达式带入其中。

【讨论】:

  • +1 你永远不会有足够的单引号。确实没有理由在 PHP 中使用双引号 - 带有连接的单引号解析速度更快,并且对于大多数习惯于仅提供连接的语言的开发人员来说更容易阅读。一个例外是,如果您需要解析转义字符,例如 \n,使用双引号比在代码中实际插入换行符更好。
猜你喜欢
  • 2020-03-13
  • 2015-07-16
  • 2011-07-23
  • 2016-03-27
  • 1970-01-01
  • 2011-08-24
  • 2022-06-30
  • 2021-04-24
  • 2012-08-31
相关资源
最近更新 更多