Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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迭代foreach,省略上一次迭代中的字符_Php_Foreach_Iteration - Fatal编程技术网

PHP迭代foreach,省略上一次迭代中的字符

PHP迭代foreach,省略上一次迭代中的字符,php,foreach,iteration,Php,Foreach,Iteration,我要遍历一个数组,每次都要汇编一个字符串返回 我的问题是,在数组的最后一次迭代中,或者如果数组中只有一个元素,如何省略逗号?我不确定这个操作将被称为什么,因为我的编码技能非常初级,所以我没有太多的运气来寻找答案。即使有助于了解这一基本细节,也将不胜感激 这是我想要的结果: { image : 'http://www.site.com/path/to/file/image1.jpg', title : 'Some title and caption' url : 'http://www.site.

我要遍历一个数组,每次都要汇编一个字符串返回

我的问题是,在数组的最后一次迭代中,或者如果数组中只有一个元素,如何省略逗号?我不确定这个操作将被称为什么,因为我的编码技能非常初级,所以我没有太多的运气来寻找答案。即使有助于了解这一基本细节,也将不胜感激

这是我想要的结果:

{ image : 'http://www.site.com/path/to/file/image1.jpg', title : 'Some title and caption' url : 'http://www.site.com/path/to/file/image1.jpg' },
{ image : 'http://www.site.com/path/to/file/image1.jpg', title : 'Some title and caption' url : 'http://www.site.com/path/to/file/image1.jpg' },
{ image : 'http://www.site.com/path/to/file/image1.jpg', title : 'Some title and caption' url : 'http://www.site.com/path/to/file/image1.jpg' }
请注意,后面没有逗号。 下面是用于生成字符串的php Im。它总是包含一个尾随的逗号,这会让我产生各种各样的灰色

//snipit
$i = 1;
$a = '';  
foreach ($pages as $go)
{
    $title  = ($go['media_title'] == '') ? ' ' : $go['media_title'];
    $caption = ($go['media_caption'] == '') ? ' ' : $go['media_caption'];

    $a .= "{ image :'" . BASEURL . GIMGS . "/$go[media_file]', title : '{$title}, {$caption}', url: '" . BASEURL . GIMGS . "/$go[media_file]' }";
    $a .= ",\n";

$i++; 
return $a;
}
非常感谢你的经验,

orionrush

只需用substr切掉末端:

return substr($a, 0, -3);

只需用substr将末端切掉:

return substr($a, 0, -3);
并使用它

return implode(",\n", $a);
并使用它

return implode(",\n", $a);

您应该真正使用
json\u encode()


您应该真正使用
json\u encode()

在foreach中做你喜欢做的事情,内爆将用逗号分隔你想要的行


在foreach中做你喜欢做的事情,内爆将用逗号分隔你想要的行

oh请使用JSON,就像JSON\u encode一样。返回语句在for循环中。它是类型吗?Gaurav-typo在我这方面,谢谢你标记它。哦,请使用JSON,就像JSON一样,如果返回语句在for循环中。它是类型吗?Gaurav-我这方面的输入错误谢谢你的标记。ThiefMaster-我现在明白为什么人们在这里推json了-谢谢你的回答非常适合我的情况。嘿-我自己的评论被封锁了!输出是正确的,但是生成了很多额外的引号和反斜杠:{“image”:“http:\/\/photolumiere.site:8888\/files\/gimgs\/1\/u photo-32.jpg”,“title:”,“,“url:”http:\/\/photolumiere.site:8888\/files\/gimgs\/1\/u photo-32.jpg“},出于我的需要,图片标题等不应该被引用,但url需要用单引号。你能快速告诉我如何格式化输出,或者告诉我一个好的技术吗?花点时间研究一下json——很不幸,这不会很好,因为我的输出将直接发送到javascript,而且它实际上不是重写代码库以接受带引号的键等的选项。我不能投票支持你,但感谢你的帮助。如果你的输出是“直接进入javascript”,你可以简单地放一些东西,比如
var stuff=
而且它会起作用,因为JSON是JavaScript.ThiefMaster的一个子集-我现在明白为什么人们在这里推JSON了-谢谢你的回答非常适合我的情况。嘿-被我自己的评论拒之门外了!输出是正确的,但是生成了很多额外的引号和反斜杠:{“image”:“http:\/\/photolumiere.site:8888\/files\/gimgs\/1\/u photo-32.jpg”,“title:”,“,“url:”http:\/\/photolumiere.site:8888\/files\/gimgs\/1\/u photo-32.jpg“},出于我的需要,图片标题等不应该被引用,但url需要用单引号。你能快速告诉我如何格式化输出,或者告诉我一个好的技术吗?花点时间研究一下json——很不幸,这不会很好,因为我的输出将直接发送到javascript,而且它实际上不是重写代码库以接受带引号的键等的选项。我不能投票支持你,但感谢你的帮助。如果你的输出是“直接进入javascript”,你可以简单地放一些东西,比如
var stuff=foreach ($pages as $go){
    $return[] = json_encode($go);
}

return implode(",\n", $return);