私は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
です。 私は$feedData
がarray
であると仮定しましたが、私はこの値を押し込んでいたかもしれませんが、そうではないようです。
どのような考えですか?
変更 '$ dの[ '評価'] = $評価;' 'へ$ d-> rating = $ rating'となります。エラーが示唆しているように、配列 '$ feedData'は実際には別の配列ではなく' stdClass'の束なので、オブジェクトとして使うだけです。幸運にも、 'php'は素晴らしい*言語なので、オブジェクトプロパティを気まぐれに追加することができます。 –
@SBB答えを確認しましたか? – Dekel