PHP从数组输出中删除最终逗号

时间:2016-12-30 20:06:38

标签: php arrays foreach

我正在为Amazon Echo开发一个项目,并且代码的输出需要采用非常特定的格式。现在代码采用RSS提要并以JSON的形式输出。我遇到的问题是我需要在每个foreach数组项目末尾显示一个逗号,但最后我不能使用逗号。

最终逗号不显示的最佳方式是什么?

                [
            {"titleText" : "TestTi","uid" :
 "https://feedity.com/hop.aspx?MzMwMzQy4%2BXKKCkpsNLXLy8v1ytOLkpNzC1OTixI1UvOz9XPKMnN0S%2FOrIhPy0lML45PB8qWxCemlKXmlZQWpeoBpQE%3D","updateDate": 
    "2016-04-10T00:00:00.0Z","mainText" :
         "Six Flags Great Adventure - Justice League Construction Update"},{"titleText" : "TestTi","uid" : "https://feedity.com/hop.aspx?MzMwMzQy4%2BXKKCkpsNLXLy8v1ytOLkpNzC1OTixI1UvOz9XPKMnN0S9PzCmJT8kszkutjC%2FPL8pJiS9KLc4vKtEDygIA",
    "updateDate": "2016-04-10T00:00:00.0Z","mainText" : 
    "Walt Disney World - Ever Heard of Disney Mountain?!"},]

我需要删除显示的最后一个逗号。

这是我的代码:

    <?php

header('Content-Type: application/json; Charset=UTF-8');
?>

[
<?php
    $rss = new DOMDocument();
    $rss->load('http://feedity.com/screamscape-com/VVNVUlFV.rss');
    $feed = array();
    foreach ($rss->getElementsByTagName('item') as $node) {
        $item = array ( 
            'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
            'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
            'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
            'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
            );
        array_push($feed, $item);
    }
    $limit = 2;
    for($x=0;$x<$limit;$x++) {
        $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
        $link = $feed[$x]['link'];
        $description = $feed[$x]['desc'];

        echo '{"titleText" : "TestTi",';
        echo '"uid" : "'.$link.'",';
        echo '"updateDate": "2016-04-10T00:00:00.0Z",';
        echo '"mainText" : "'.$title.'"},';


    }
?>
]

2 个答案:

答案 0 :(得分:4)

最好的方法是构建数组并使用json_encode()输出它。这样您就不必尝试手动创建json。

简化示例

$feed = array();

$results = array();
foreach($feed as $item){
    $results[] => array(
        'titleText' => 'TestTi',
        'uid' => $item['link'],
        'title' => $item['title']
    );
}
$json = json_encode($results);

答案 1 :(得分:0)

$arr = array();
for($x=0;$x<$limit;$x++) {
    $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
    $link = $feed[$x]['link'];
    $description = $feed[$x]['desc'];
    $arr[] = '{"titleText" : "TestTi", "uid" : "'.$link.'", "updateDate": "2016-04-10T00:00:00.0Z", "mainText" : "'.$title.'"}';
}
print implode(',', $arr);