0

我一直在努力让它发挥作用,虽然我尝试了许多在本网站的其他页面上发布的方法,但我无法让它们中的任何一种发挥作用。

我需要确定最后一个键,以便我的结果最后没有 , 。这听起来很简单,但我似乎无法让它发挥作用!在这一点上,我猜我只是有一个错字或我忽略的东西。任何帮助将不胜感激。

这就是我所拥有的:

<?php
    $searchString = $_GET["s"];  
    $prefix = 'http://link_to_my_xml_file.xml?q=';
    $suffix = '&resultsPerPage=100';
    $file = $prefix . $searchString . $suffix;
    if(!$xml = simplexml_load_file($file))
        exit('False'.$file);
    foreach($xml->results->result as $item) {
        echo $item->sku . ",";
    }
?>

现在这工作得很好,最后只有一个 , :

12345,23456,34567,45678,

作为参考,我的 xml 文件的布局如下:results->result->sku,但混合了更多内容。我只是挑选出这些字段。

4

5 回答 5

1

考虑改为识别第一个?

$first = true;
foreach($xml->results->result as $item) {
    if ($first) {
        $first = false;
    } else {
        echo ',';
    }
    echo $item->sku;
}
于 2013-08-29T13:16:18.400 回答
0

利用rtrim()

foreach($xml->results->result as $item) {
    $mystr .= $item->sku . ",";
}
echo rtrim($mystr, ",")

应该输出:

12345,23456,34567,45678

演示!

于 2013-08-29T13:15:16.170 回答
0

如果您的键按数字顺序排列,例如:0、1、2、3 等,这可能是一个解决方案:

foreach($xml->results->result as $key => $item)
{
    if( $key > 0 ) echo ", ";
    echo $item->sku
}
于 2013-08-29T13:15:31.130 回答
0

可能的解决方案#1:

$first = true;
foreach ($xml->results->result as $item) {
    if ($first) {
        $first = false;
    } else {
        echo ', ';
    }
    echo $item->sku;
}

可能的解决方案#2:

$items = array();
foreach ($xml->results->result as $item) {
    $items[] = $item->sku;
}
echo join(', ', $items);
于 2013-08-29T13:15:55.203 回答
0

您可以将所有内容放在 stribg 中,然后运行:

substr($yourstr, 0, -1);

在您的代码上删除最后一个字符:

http://de1.php.net/manual/en/function.substr.php

或获取数组中的条目总数并计算您的位置

于 2013-08-29T13:15:59.420 回答