PHP循环,更改最后一项?

red*_*ory 1 php loops css-selectors

这可能实际上是一个CSS问题,但我希望不是因为我想在IE中工作.

我有以下循环:

<?php 
  if ($category)
{
     foreach($category as $item)
         {
               echo $item['name'];
               echo ", ";
         }
} ?>
Run Code Online (Sandbox Code Playgroud)

哪个应该输出

项目,项目,项目,

唯一的事情是......我想在最后一项之后没有逗号.在循环中有没有办法做到这一点?

Orb*_*ing 7

为了保持你的代码是这样的,你可以添加一个计数器,并跳过最后一个.

<?php 
if ($category) {
     $counter = 0;
     foreach($category as $item)
         {
               $counter++;
               echo $item['name'];
               if ($counter < count($category)) {
                   echo ", ";
               }
         }
}
?>
Run Code Online (Sandbox Code Playgroud)

或者你可以做得更多,更快,更快:

<?php echo implode(", ", array_map(create_function('$item', 'return $item["name"];'), $category)); ?>
Run Code Online (Sandbox Code Playgroud)

  • @Billy ONeal:这就是我的想法,然后我意识到这是因为它必须是`$ item ['name']`,而不仅仅是`$ item`. (2认同)
  • @Felix King:谢谢Felix.我使用了密钥上给出的示例中的单引号,而没有注意我已经在单引号中的事实.为我使用`create_function()`时常见的问题,因为我倾向于使用单引号作为键. (2认同)