查找foreach()过程中的最后一个条目

时间:2009-11-20 15:00:00

标签: php foreach

简单的一个人。

我使用simplexml_load_file()解析了XML。

以下代码:

<?php
    foreach($xml->actors->actor as $actors) {
        echo $actors.", ";
    }
?>

给出以下结果:

John Smith, Amy Adams, Charlie Doe, 

如何修改代码,使其显示:

John Smith, Amy Adams, Charlie Doe

这需要应用于数组中的任意数量的条目。谢谢!

5 个答案:

答案 0 :(得分:10)

使用implode功能。

echo implode(", ", $xml->actors->actor);

答案 1 :(得分:7)

您可以在foreach中获取当前索引:

<?php
    foreach($xml->actors->actor as $key => $actors) {
     if ($key == (count($actors)-1) echo "Last entry!";
    }
?>

在这种情况下,我更喜欢先创建一个包含条目的临时数组,然后将其内爆:

echo implode(",", $names);

答案 2 :(得分:1)

print implode(',',$xml->actors->actor);

答案 3 :(得分:0)

我通常用一个简单的数组来解决这个问题:

<?php
$names = array();
foreach($xml->actors->actor as $actors) {
    $names[] = $actors;
}
echo implode(", ", $names);
?>

事实上,为什么不只是说

<?php
    echo implode(", ", $xml->actors->actor);
?>

答案 4 :(得分:0)

您可以像上面提到的那些人一样内爆数组,或者将actor的名称分配给变量并将该变量与每次迭代连接起来,然后对结果数组执行rtrim操作以删除最后一个逗号。

但为了简单起见,请进行内爆。