PHP——识别foreach中的最后一个键以删除最后一个delimeter

PHP——识别foreach中的最后一个键以删除最后一个delimeter,php,foreach,key,comma,Php,Foreach,Key,Comma,我一直在努力让它工作,虽然我已经尝试了许多方法张贴在这个网站上的其他网页,我不能让他们任何工作 我需要确定最后一个关键点,这样我的结果就不会在最后出现错误。这听起来像是一项如此简单的任务,但我似乎无法让它工作!在这一点上,我猜我只是有一个打字错误或一些我忽略了。任何帮助都将不胜感激 这就是我所拥有的: <?php $searchString = $_GET["s"]; $prefix = 'http://link_to_my_xml_file.xml?q=';

我一直在努力让它工作,虽然我已经尝试了许多方法张贴在这个网站上的其他网页,我不能让他们任何工作

我需要确定最后一个关键点,这样我的结果就不会在最后出现错误。这听起来像是一项如此简单的任务,但我似乎无法让它工作!在这一点上,我猜我只是有一个打字错误或一些我忽略了。任何帮助都将不胜感激

这就是我所拥有的:

<?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 . ",";
    }
?>
results->result as$item){
echo$item->sku;
}
?>
现在这一切都很好,它只是有一个,在结尾:

12345234563456745678

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

使用

应输出:

12345,23456,34567,45678

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

foreach($xml->results->result as $key => $item)
{
    if( $key > 0 ) echo ", ";
    echo $item->sku
}
可能的解决方案#1:

可能的解决方案#2:


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

substr($yourstr, 0, -1);
在代码上删除最后一个字符:


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

是否考虑识别第一个

$first = true;
foreach($xml->results->result as $item) {
    if ($first) {
        $first = false;
    } else {
        echo ',';
    }
    echo $item->sku;
}
$items = array();
foreach ($xml->results->result as $item) {
    $items[] = $item->sku;
}
echo join(', ', $items);
substr($yourstr, 0, -1);
$first = true;
foreach($xml->results->result as $item) {
    if ($first) {
        $first = false;
    } else {
        echo ',';
    }
    echo $item->sku;
}