Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将包含逗号的项添加到数组中?_Php_Arrays_Dynamic Arrays - Fatal编程技术网

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

Php 如何将包含逗号的项添加到数组中?,php,arrays,dynamic-arrays,Php,Arrays,Dynamic Arrays,我有一个循环通过的对象数组。我需要创建一个数组,其中包含格式为LASTNAME、FIRSTNAME的项 当我这样做的时候,我会得到一个由lastname、firstname、lastname、firstname等组成的数组,因为它将文本中的逗号解释为两个数组值的分隔符 JSON(示例): 然后 $authors = array(); for ($i = 0; $i < count($index); ++$i) { 而不是期望的: ["Levy, Robert","Johannenson

我有一个循环通过的对象数组。我需要创建一个数组,其中包含格式为LASTNAME、FIRSTNAME的项

当我这样做的时候,我会得到一个由lastname、firstname、lastname、firstname等组成的数组,因为它将文本中的逗号解释为两个数组值的分隔符

JSON(示例):

然后

$authors = array();

for ($i = 0; $i < count($index); ++$i) {
而不是期望的:

["Levy, Robert","Johannenson, Svenn","Smith, Albertson"]
我对这一点并不陌生,但这让我感到困惑。我可以在创建数组后尝试某种字符替换(例如,使用|作为分隔符,然后执行str|替换或其他操作),但我正在寻找一种更优雅的方法。

以下是您的示例

$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;
}  
所以一切似乎都是正确的


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

结果将在脚本中进一步解析,并导致输出中断。PHP正在正常工作。谢谢你的快速回答

$authors
当然不包含确切的内容。您是如何获得该输出的?
因为它将文本中的逗号解释为字符串中两个数组值的分隔符
?然后你的JSON解析器坏得很厉害。你的代码对我来说很有用:它不会“将文本中的[your]逗号解释为两个数组值的分隔符”。您如何查看
$authors
?您在哪里看到这些结果?这里显示的PHP代码不会生成您声称的结果。您在哪里将
$authors
编码为JSON?也许错误在别处。对于一个简单的检查,
echo计数($authors)是多少显示?检查将结果解析回json的方式。
["Levy, Robert","Johannenson, Svenn","Smith, Albertson"]
$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;
}  
array(3) {
  [0]=>
  string(12) "Levy, Robert"
  [1]=>
  string(18) "Johannenson, Svenn"
  [2]=>
  string(16) "Smith, Albertson"
}