【问题标题】:Converting associative array into string of "id = value, id = value" in one line in PHP在PHP中的一行中将关联数组转换为“id = value,id = value”的字符串
【发布时间】:2012-11-28 15:16:02
【问题描述】:

在 Python 中,我会做这样的事情来处理以下字典(相当于 php 的 assoc 数组)。

arr = {'id': '1', 'name': 'marcin', 'born': '1981-10-23'}
print ', '.join([('`%s` = "%s"') % (k,v) for k,v in arr.items()])

得到:

`born` = "1981-10-23", `id` = "1", `name` = "marcin"

假设 PHP 数组是:

array("id"=>"1","name"=>"marcin","born"=>"1981-10-23");

有没有办法在 PHP 5.3 中获得相同的结果而不使用 foreach 循环?

【问题讨论】:

  • 输出格式重要吗? json_encode() 对于结构化的东西非常方便,并且与您正在寻找的东西非常相似。然后,您不必担心逃跑之类的,因为它会为您解决。
  • 是的,输出格式很重要。我想要生成 SQL 查询的一部分。我知道 PHP 5.3 没有列表理解,但我想也许一些函数可以完成这项工作。谢谢布拉德。
  • 找到你的答案:stackoverflow.com/a/507195/362536
  • 我觉得有趣的是 2 人认为 JSON 编码/解码会对此有所帮助,有人查看标签或阅读实际问题吗?它是一个关联数组到字符串的转换,并且他使用 Python AA 来获取一个字符串...
  • 因为几乎是JSON格式。

标签: php associative-array


【解决方案1】:

查看相对较新的http_build_query 函数:

例如

echo http_build_query(array('foo'=>'bar', 'zig'=>'zag', 'tic'=>'tac'), '', ', ');

输出:

foo=bar, zig=zag, tic=tac

它用于制作查询字符串,但第三个参数arg_separator 可以是任何字符串(默认为“&”)。

(这不能解决您的引用问题,但它可能仍然有帮助)

【讨论】:

  • 不幸的是,格式在这里至关重要。布拉德找到了解决办法。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2019-09-08
  • 2020-06-29
  • 1970-01-01
  • 2014-04-23
  • 2016-12-14
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
相关资源
最近更新 更多