gpt4 book ai didi

PHP - 在循环内将项目添加到数组

转载 作者:行者123 更新时间:2023-12-02 15:14:23 25 4
gpt4 key购买 nike

我正在使用 PHP 框架 CodeIgniter 快速组合一个项目。我的一个循环/数组遇到了 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();
}

我的 Controller :

    $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

我收到的错误是不能将 stdClass 类型的对象用作数组。我假设 $feedData 是一个 array,我可以将这个值插入其中,但事实似乎并非如此。

有什么想法吗?

最佳答案

您的问题是 $d 变量可能是 stdClass(而不是 Array),因此您不能使用 $d[..] 在该对象上,因为此语法用于数组访问,而不是对象。

访问对象成员的语法是->:

$d->rating = $rating;

所以你的完整循环看起来像:

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

关于PHP - 在循环内将项目添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41389480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com