반복 결과를 쉼표로 구분하고 싶지만 배열이 아닙니다. 뷰에서이를 수행하고 싶기 때문에 코드가 길어서는 안됩니다.PHP를 사용한 반복의 마지막 항목
<?php foreach ($roles as $role): ?>
<?php echo $role->title; ?>
<?php endforeach; ?>
결과 개체는 Countable, Iterator, SeekableIterator, ArrayAccess를 구현합니다.
반복 결과를 쉼표로 구분하고 싶지만 배열이 아닙니다. 뷰에서이를 수행하고 싶기 때문에 코드가 길어서는 안됩니다.PHP를 사용한 반복의 마지막 항목
<?php foreach ($roles as $role): ?>
<?php echo $role->title; ?>
<?php endforeach; ?>
결과 개체는 Countable, Iterator, SeekableIterator, ArrayAccess를 구현합니다.
당신이 묻는 것 (기본적으로 당신의 코드는 당신이하는 말을하는 것처럼 보입니다)을 이해하지 못합니다. 누락 된 부분은 쉼표로 구분됩니다. 당신의 $roles
변수가 객체 속성 값의 배열을 반환하는 방법을 쓰기입니다
<?php
$output="";
foreach ($roles as $role) {
$output.=$role->title.",";
}
echo substr($output,0,-1);//Trim last comma
?>
경우
<?php
$first=true;
foreach ($roles as $role) {
if (!$first) echo ",";
$first=false;
echo $role->title;
}
?>
또는 캐싱 (문자열의 길이가 너무 길지) 정상이면
. 다음과 같음 :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'));