PHP 迭代中的最后一项

发布于 2024-11-27 08:09:57 字数 251 浏览 2 评论 0原文

我想用逗号分隔迭代结果,但它不是一个数组。我想在视图中执行此操作,因此代码不应该很长。

<?php foreach ($roles as $role): ?>
    <?php echo $role->title; ?>
<?php endforeach; ?>

结果对象实现了 Countable、Iterator、SeekableIterator、ArrayAccess。

I want to separate iteration results by comma, but it's not an array. I want to do it in views, so code shouldn't be long.

<?php foreach ($roles as $role): ?>
    <?php echo $role->title; ?>
<?php endforeach; ?>

Result object implements Countable, Iterator, SeekableIterator, ArrayAccess.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凉城 2024-12-04 08:09:57

不确定我明白你的要求(你的代码基本上似乎按照你说的做?)我认为唯一缺少的是用逗号分隔。

<?php
$first=true;
foreach ($roles as $role) {
  if (!$first) echo ",";
  $first=false;
  echo $role->title;
}
?>

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

<?php
$output="";
foreach ($roles as $role) {
  $output.=$role->title.",";
}
echo substr($output,0,-1);//Trim last comma
?>

Not certain I understand what your asking (your code basically seems to do what you say?) the only thing i see missing is separate by comma.

<?php
$first=true;
foreach ($roles as $role) {
  if (!$first) echo ",";
  $first=false;
  echo $role->title;
}
?>

Or if caching is ok (string length isn't too long):

<?php
$output="";
foreach ($roles as $role) {
  $output.=$role->title.",";
}
echo substr($output,0,-1);//Trim last comma
?>
黒涩兲箜 2024-12-04 08:09:57

如果您的 $roles 变量是一个对象,请编写一个返回属性值数组的方法。像这样的东西:

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'));

If your $roles variable is an object, write a method that returns an array of property values. Something like:

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'));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文