【发布时间】:2014-07-03 13:36:44
【问题描述】:
我有一个要循环的对象数组。我需要创建一个包含 LASTNAME、FIRSTNAME 格式的项目的数组。
当我这样做时,我会得到一个包含姓氏、名字、姓氏、名字等的数组,因为它将文本中的逗号解释为两个数组值的分隔符。
JSON(示例):
[
{"lastname":"Levy","firstname":"Robert"},
{"lastname":"Johannenson","firstname":"Svenn"},
{"lastname":"Smith","firstname":"Albertson"}
]
然后
$authors = array();
for ($i = 0; $i < count($index); ++$i) {
$at = trim($index[$i]->lastname) 。 “,”。修剪($index[$i]->名字); $作者[] = $at; }
那么 $authors 包含
["Levy","Robert","Johannenson","Svenn","Smith","Albertson"]
而不是想要的:
["Levy, Robert","Johannenson, Svenn","Smith, Albertson"]
我对此并不陌生,但这让我很难过。我可以在创建数组后尝试某种字符替换(例如,使用 | 作为分隔符,然后执行 str_replace 或其他操作),但我正在寻找一种更优雅的方式。
【问题讨论】:
-
$authors当然不包含这个。您究竟是如何获得该输出的? -
because it interprets my comma in the text as a separator for two array values- 在字符串中?那么你的 JSON 解析器坏了。 -
您的代码适用于我:eval.in/169154 它不会“将文本中的 [your] 逗号解释为两个数组值的分隔符”。您如何查看
$authors?您在哪里看到这些结果? -
您在此处显示的 PHP 代码不会生成您声明的结果。你在哪里将
$authors编码为 JSON?也许错误在其他地方。简单检查一下,echo count($authors);向您展示了什么? -
检查将结果解析回 json 的方式。
标签: php arrays dynamic-arrays