如何将包含逗号的项添加到数组?

时间:2014-07-03 13:36:44

标签: php arrays dynamic-arrays

我有一个循环的对象数组。我需要创建一个包含LASTNAME,FIRSTNAME格式的项目的数组。

当我这样做时,我最终会得到一个lastname,firstname,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] - &gt; lastname)。 &#34;,&#34; 。修剪($指数[$ i]于 - &GT;姓名);         $ authors [] = $ at;     }

然后$ authors包含

["Levy","Robert","Johannenson","Svenn","Smith","Albertson"]

而不是所需的:

["Levy, Robert","Johannenson, Svenn","Smith, Albertson"]

我真的不是新手,但这让我很难过。在制作数组后我可以尝试某种字符替换(例如使用|作为分隔符,然后执行str_replace或其他东西),但我正在寻找更优雅的方式。

2 个答案:

答案 0 :(得分:1)

这是你的例子

$index = json_decode('[
   {"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) . ", " . trim($index[$i]->firstname);
    $authors[] = $at;
}  

这是$ authors

的输出
array(3) {
  [0]=>
  string(12) "Levy, Robert"
  [1]=>
  string(18) "Johannenson, Svenn"
  [2]=>
  string(16) "Smith, Albertson"
}

所以一切似乎都是正确的。

您能提供完整的源代码吗?

答案 1 :(得分:0)

结果在脚本中进一步解析,导致输出中断。 PHP正在按预期工作。感谢所有快速解答。