2016-12-30 6 views
1

빠른 프로젝트를 함께 던지려면 PHP 프레임 워크 CodeIgniter을 사용하고 있습니다. 내 루프/배열 중 하나와 PHP 관련 문제로 실행하고 올바른 방향으로 밀어를 찾고 있는데요.PHP - 루프 내의 배열에 항목 추가

PHP 데이터베이스 전화 :

public function get_feed_data() 
    { 
      $query = $this->db->query('SELECT c.id, c.name, c.age, c.photoName, c.photoNameSmall, c.panelColor , IFNULL(SUM(t.points), '.MAX_POINTS.') as totalPoints 
            FROM children as c 
            LEFT JOIN behaviorRatings as r 
            ON c.id = r.childID 
            LEFT JOIN behaviorTypes as t 
            ON r.behaviorID = t.behaviorTypeID 
            GROUP BY c.id'); 
      return $query->result(); 
    } 

내 컨트롤러 :

$feedData = $this->display_model->get_feed_data(); 
    $output = array(); 

    foreach($feedData as $d) 
    { 
     $rating = $this->_current_behavior($d->totalPoints[0]); 
     $d['rating'] = $rating; 
     $output[] = $d; 
    } 

    $response    = array(); 
    $response['timestamp'] = $currentmodif; 
    $response['children'] = $output; 
    echo json_encode($response); 

시트 문제점 :

데이터베이스 호출없이 테이블에서 데이터의 여러 레코드를 반환 모든 문제. 그러나 다른 배열을 다른 함수를 통해 계산 된 다른 키/값 쌍을 추가하려고합니다.

배열에서 $rating 값을 사용하여 rating 키를 추가하려고합니다.

내가 얻는 오류는 Cannot use object of type stdClass as array입니다. $feedDataarray 인 것으로 가정했는데이 값을 방금 밀어 넣을 수는 있지만 그럴 수는 없습니다.

의견이 있으십니까?

+0

변화'$ d 개 [ '평가'] = $ 평가,''에 $ d-> rating = $ rating'을 선택하십시오. 오류가 암시 하듯이,'$ feedData' 배열은 실제로 다른 배열이 아닌'stdClass'의 묶음이므로 객체로만 사용하면됩니다. 다행히도,'php'는 멋진 * 언어입니다. 객체 속성을 추가 할 수 있습니다. –

+0

@SBB 답변을 확인 했습니까? – Dekel

답변

6

귀하의 문제는이 구문은 객체 배열 액세스하는 데 사용되며 때문이 아니라, 아마도 $d 변수가 stdClass (그리고 Array)이므로 해당 개체에 $d[..]를 사용할 수 있다는 것입니다.

객체의 멤버에 액세스하는 구문은 ->입니다 :

$d->rating = $rating; 

그래서 완전한 루프가 다음과 같이 표시됩니다

foreach($feedData as $d) 
{ 
    $rating = $this->_current_behavior($d->totalPoints[0]); 
    $d->rating = $rating; 
    $output[] = $d; 
}