我有一个循环的对象数组。我需要创建一个包含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或其他东西),但我正在寻找更优雅的方式。
答案 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正在按预期工作。感谢所有快速解答。