我想用逗号分隔迭代结果,但它不是一个数组。我想在视图中这样做,所以代码不应该很长。
<?php foreach ($roles as $role): ?>
<?php echo $role->title; ?>
<?php endforeach; ?>Result对象实现了Countable,Iterator,SeekableIterator,ArrayAccess。
发布于 2011-07-29 01:55:43
我不确定我明白你问的是什么(你的代码似乎基本上做到了你所说的?)我唯一看不到的就是用逗号隔开。
<?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
?>发布于 2011-07-29 02:06:42
如果您的$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'));https://stackoverflow.com/questions/6863401
复制相似问题