首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP迭代中的最后一项

PHP迭代中的最后一项
EN

Stack Overflow用户
提问于 2011-07-29 01:51:40
回答 2查看 183关注 0票数 0

我想用逗号分隔迭代结果,但它不是一个数组。我想在视图中这样做,所以代码不应该很长。

代码语言:javascript
复制
<?php foreach ($roles as $role): ?>
    <?php echo $role->title; ?>
<?php endforeach; ?>

Result对象实现了Countable,Iterator,SeekableIterator,ArrayAccess。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-29 01:55:43

我不确定我明白你问的是什么(你的代码似乎基本上做到了你所说的?)我唯一看不到的就是用逗号隔开。

代码语言:javascript
复制
<?php
$first=true;
foreach ($roles as $role) {
  if (!$first) echo ",";
  $first=false;
  echo $role->title;
}
?>

或者如果缓存没问题(字符串长度不是太长):

代码语言:javascript
复制
<?php
$output="";
foreach ($roles as $role) {
  $output.=$role->title.",";
}
echo substr($output,0,-1);//Trim last comma
?>
票数 1
EN

Stack Overflow用户

发布于 2011-07-29 02:06:42

如果您的$roles变量是一个对象,请编写一个返回属性值数组的方法。类似于:

代码语言:javascript
复制
class Roles implements Countable, Iterator, SeekableIterator, ArrayAccess {

  //main body of the class here

  public function prop_as_array($prop){
    if(!property_exists('Role', $prop)) throw new Exception("Invalid property");
    $arr=array();
    if(count($this)==0) return $arr
    foreach($this as $role){
      $arr[]=$role->$prop;
    }
    return $arr;
  }

}

//on output page
$roles=new Roles;
echo implode(',', $roles->prop_as_array('title'));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6863401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档