2011-07-28 9 views
0

反復結果をコンマで区切りますが、配列ではありません。私はビューでそれをやりたいので、コードは長くはならない。PHPを使用した最後の項目

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

結果オブジェクトはCountable、Iterator、SeekableIterator、ArrayAccessを実装します。

答えて

1

あなたの質問(あなたのコードは基本的にあなたの言うことをするようです)を理解していませんか?唯一の欠けているのはコンマで区切られています。

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

またはキャッシュが(文字列の長さが長すぎるではありません)OKの場合:

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

あなた$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')); 
関連する問題